我有一个很长的列表,其中的代码段看起来像这样:
X1000ABC
X1100ABC
X2000ABC
X2200ABC
X3000ABC
X3300ABC
有人可以解释我如何匹配 X1000ABC
和X2000ABC
除 {{1}}之外所有字符串
我的问题是我有一个很长(并且可能在增长)的代码列表,这些代码只有4位数字不同。
需要排除其中两个代码(我知道哪两个代码)我尝试使用否定前瞻,但是......我可能错误地使用了语法,因为我似乎无法“或”使用它。或者......我只是不明白前瞻。
任何帮助表示赞赏。提前谢谢。
答案 0 :(得分:4)
答案 1 :(得分:2)
以下是我在JavaScript支持的正则表达式中的表现:
(?!X[12]000ABC)X[0-9]{4}ABC
这在前瞻中使用了一个字符类。如有必要,请在开头和结尾添加^
和$
个锚点(包括$
在前瞻中)。
答案 2 :(得分:1)
这个怎么样?
X(?![12]000)\d{4}ABC
在python中测试
>>> x
'X1000ABC\nX1100ABC\nX2000ABC\nX2200ABC\nX3000ABC\nX3300ABC'
>>> re.findall("X(?![12]000)\d{4}ABC",x)
['X1100ABC', 'X2200ABC', 'X3000ABC', 'X3300ABC']