我有以下几行:
MyString 33
MyString 10
MyString 3
MyString 5
我希望在没有特定号码的所有线路上获得匹配:3 因此,我需要对这些数字进行匹配:
MyString 33
MyString 10
MyString 5
但不:
MyString 3
这就是我的尝试:
MyString ^(?!3)
MyString ^(3)
MyString (^?!3)
MyString (^3)
但他们都没有工作
我对正则表达式没有多少经验
我用这个网站作为指导:
https://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
我也读过类似的问题:
Exclude certain numbers from range of numbers using Regular expression
Exclude a set of specific numbers in a "\d+" regular expression pattern
但我仍然不明白该怎么做。
答案 0 :(得分:2)
答案 1 :(得分:2)
工作解决方案:
\w+\s+(?!3\b)\d+
\w+ # 1 or more word characters
\s+ # 1 or more white-space characters
(?!3\b) # looking ahead, this group may not match (\b is a word boundary)
\d+ # 1 or more digits
答案 2 :(得分:1)
您可以使用表达式:
grep -v '^3$' yourFile
通过这种方式,您要求找到:
由此,您选择了仅包含数字3的所有字符串。使用标记-v反向选择以获得您想要的内容。
希望它有所帮助。