我正在尝试找出这个扩展表达式,使用以下参数搜索特定行的txt文件:
这些应匹配:
x555-1212x
x555__1212x
x555-_-1212x
但这些不匹配:
x999555-1212x
x555-1212999x x999555-1212999x
555-121x
x55-1212
5551212
这是我尝试的内容,它根据检查脚本给出了7行所需的5行
egrep '[^0-9]+[[:digit:]]{3}[-_]+[[:digit:]]{4}[^0-9]+' foo.txt
我不确定我在哪里出错了...我是否过于限制并且消除某些像Tab这样的空白字符或其他东西。有人有什么想法吗?
答案 0 :(得分:1)
由于您对具有您的模式的行感兴趣,因此您可以在匹配模式中使用start ^
和结束$
RegEx运算符。
RegEx:^.*?(\D|^)(\d{3}[-_]+\d{4})(\D|$).*?$
在此解释演示:http://regex101.com/r/gQ0cE2