说我有一系列字符串“123AB”,“456CDEF”,“789G”,“012-HI”。如何找到所有字符串(1或更多)后跟alpha(1或更多)没有特殊字符,其中字母字符不是 AB ?
为了澄清,应用于前一个集合的正则表达式应该产生“456CDEF”和“789G”。忽略“123AB”,因为alpha值为 AB ,并且忽略“012-HI”,因为它包含非alpha。我正在寻找的正则表达式减去特殊的 AB 规则,是^[0-9]+[A-Z]+$
。案件是无关紧要的。我尝试了[^ ]
规则的一些变体但没有成功,因为我提出的所有模式都允许使用特殊字符。
为了概括,我如何使用单个正则表达式模式匹配一组与某个alpha值子集不匹配的alpha值?
注意:也应接受“123ABC”。只应忽略 AB 的字符串。
答案 0 :(得分:2)
你想要一个先行断言:^[0-9]+(?!AB$)[A-Z]+$
答案 1 :(得分:0)
没有预见:
^ [0-9] +([B-Z] | A [AC-Z])[A-Z] * $
修改强>
撤回,因为这与123A
之类的东西不匹配。但我会把答案看作是一个不起作用的例子。
答案 2 :(得分:0)
^\d+(?:a(?:b[a-z]+|[^b][a-z]*)?|[^a][a-z]*)$
字符串的开头,然后是1位或更多位数,然后是(A)a后跟b后跟更多字母,或者(B)a后跟除b之外的任何字母以及之后的任何字母,或者(C)任何其他字母比后跟任何字母,然后结束字符串