1
我有第一个包含数字或字母或连字符的字符串。如果第一个字符是数字,那么第二个字符应该是字符,其余的应该是数字,字母和连字符的任何出现。第一个字符可能是字符串第二个字符应该是数字,其余的应该是字母数字
我试着用:
([A-Za-z-]{1})(?![A-Za-z-]{1})([A-Za-z-]{61})
字符串是有效的:在字符串
- 如果只有字母和字符串中的一个字符。
- 如果只有字符串中的连字符和字符串中的一个字符。
- 如果第一个字符是数字,那么第二个字符应该是字母或连字符,其余的可以是字母,数字或连字符。
- 不允许特殊字符或制表符或空格连字符是允许的。
- 字符串的最大长度为63个字符。
例如:
1 : invalid
11 : invalid
;1 : invalid
1; : invalid
a; : invalid
;a : invalid
- : valid
a : valid
aa : valid
a1 : valid
1a : valid
1- : valid
-1 : valid
a- : valid
-a : valid
11testisgoingon : invalid
;1testingisgoingon : invalid
1;testingisgoingon : invalid
a;testingisgoingon : invalid
;atestingisgoingon : invalid
-testingisgoingon : valid
atestingisgoingon : valid
aatestingisgoingon : valid
a1testingisgoingon : valid
1atestingisgoingon : valid
1-testingisgoingon : valid
-1testingisgoingon : valid
a-testingisgoingon : valid
-atestingisgoingon : valid
([A-Za-z-])(?![A-Za-z-])
但这个工作做好了前两个字符。但是如果有两个以上的字符,那么这是不正确的。
这气味像功课。你有尝试过一个正则表达式吗? –
是的我开始于:([A-Za-z - ])(?![A-Za-z-])。这可以达到2个字符,意味着达到了一半的条件。如果我有超过2个字符的字符串,它不会给出所需的结果。我唯一的问题是如何扩展这个正则表达式 – amit
根据您提供的数据,也许这[正则表达式](https://regex101.com/r/2nYe49/1)'^(?=。{0,63} $)( ?:[a-zA-za-z - ] [A-Za-z \ d - ]?\ d [A-Za-z - ])[A-Za-z - ] * $'可以帮助你 –