我正在搜索大量包含各种负错误代码的文本日志文件,主要是4位数前面有减号,例如-3304
,-3315
等。我希望排除这些错误代码中的一小部分,同时允许所有其他错误代码匹配。
我试着用这个答案的改编:
"^/(?!-3301|-3304|-3306|-3308|-3309)(-[0-9]{4})"
排除-3301, -3304, -3306, -3308, -3309
,但匹配所有其他4位负字符串。我知道有匹配的,比如文件集中的-3220
,但是它们不匹配。
我在试图消极看待未来的过程中错过了什么?
在数字匹配模式之前有一些/
字符,不应该是负数的一部分。此外,您只在字符串的开头与^
匹配。
请注意,如果使用该模式匹配超过4位数的数字,则需要在右侧设置数字边界。
可以使用
-(?!330[14689])d{4}(?!d)
细节:
-
- a连字符(?!330[14689])
-在右边,应该没有330
,然后是14689
设置的一个数字d{4}
-四位数字(?!d)
-右边不允许出现数字