Regex 多条件正则表达式
如何在一个正则表达式中分配多个条件 例如:我想要一个以特征词开头和结尾的字符串,它的中间可能有空格,长度也可以是1 所以我写下:Regex 多条件正则表达式,regex,Regex,如何在一个正则表达式中分配多个条件 例如:我想要一个以特征词开头和结尾的字符串,它的中间可能有空格,长度也可以是1 所以我写下: (?=^[a-zA-Z0-9])(?=[a-zA-Z0-9]$)(?=^[a-zA-Z0-9 ]+$) 但这不起作用。 我想是这样的: (?=^[a-zA-Z0-9])字符串以a到z和0到9开头 (?=[a-zA-Z0-9]$)它也以相同的字符结尾 (?=^[a-zA-Z0-9]+$)并且它可以包含许多a到z、0到9和空格(在上述条件下,这些空格应该位于字符串的中间
(?=^[a-zA-Z0-9])(?=[a-zA-Z0-9]$)(?=^[a-zA-Z0-9 ]+$)
但这不起作用。
我想是这样的:
(?=^[a-zA-Z0-9])
字符串以a到z和0到9开头
(?=[a-zA-Z0-9]$)
它也以相同的字符结尾
(?=^[a-zA-Z0-9]+$)
并且它可以包含许多a到z、0到9和空格(在上述条件下,这些空格应该位于字符串的中间)为什么不简单:
^[a-zA-Z0-9][a-zA-Z0-9 ]+[a-zA-Z0-9]$
如果字符串长度可以为一个字符:
^(?=[a-zA-Z0-9])(?=.*[a-zA-Z0-9]$)[a-zA-Z0-9 ]+$
为什么不简单地:
^[a-zA-Z0-9][a-zA-Z0-9 ]+[a-zA-Z0-9]$
如果字符串长度可以为一个字符:
^(?=[a-zA-Z0-9])(?=.*[a-zA-Z0-9]$)[a-zA-Z0-9 ]+$
为什么你只使用lookaheads?@RadLexus我真的不使用ahad和backward,所以?=是在照顾。。。那之后呢?第二个条件?或者字符串的其他部分或者…??为什么只使用lookaheads?@RadLexus我真的不使用ahad和backward,所以?=正在照顾。。。那之后呢?第二个条件?或者字符串的其余部分,或者…??这是最小3个字符,这就是为什么它不简单,所以你把开头和结尾都移了出来,我也试过了,但我没有添加。*,那是什么?看来我把main语句放在第三个括号里是错误的,对吗?@deadManN:第二个lookahead断言在字符串末尾的1 alphanum之前有0个或更多的字符。你可以把主语句放在一个lookahead中,但没有必要。这是3个字符的最小值,这就是为什么它不简单,所以你把开始和结束都移了出来,我也试过了,但我没有添加。*,那是什么?看来我把main语句放在第三个括号里是错误的,对吗?@deadManN:第二个lookahead断言在字符串末尾的1 alphanum之前有0个或更多的字符。您可以将主语句放在前瞻中,但不需要这样做。