繁体   English   中英

正则表达式 - 匹配与字母字符子集不匹配的字母字符(C#)

[英]Regex - Match alpha characters that don't match a subset of alpha characters (C#)

假设我有一系列字符串“123AB”,“456CDEF”,“789G”,“012-HI”。 如何找到所有字符串(1或更多)后跟alpha(1或更多)没有特殊字符,其中字母字符不是AB

为了澄清,应用于前一个集合的正则表达式应该产生“456CDEF”和“789G”。 “123AB”被忽略,因为alpha值为AB ,“012-HI”被忽略,因为它包含非alpha。 我正在寻找的正则表达式,减去特殊的AB规则,是^[0-9]+[AZ]+$ 案件是无关紧要的。 我已经尝试了[^ ]规则的一些变体而没有成功,因为我想出的所有模式都允许使用特殊字符。

为了概括,我如何使用单个正则表达式模式匹配一​​组与某个alpha值子集不匹配的alpha值?

注意 :也应接受“123ABC”。 只应忽略具有AB的字符串。

你想要一个先行断言: ^[0-9]+(?!AB$)[AZ]+$

没有预见:

^ [0-9] +([BZ] | A [AC-Z])[AZ] * $

编辑:
撤回,因为这与123A不匹配。 但是我会把答案看作一个不起作用的例子。

^\\d+(?:a(?:b[az]+|[^b][az]*)?|[^a][az]*)$
字符串的开头,然后是1位或更多位数,然后是(A)a后跟b后跟更多字母,或者(B)a后跟除b之外的任何字母以及之后的任何字母,或者(C)任何其他字母比后跟任何字母,然后结束字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM