我正试图找出这个扩展表达式,以便使用以下参数在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或其他什么。有人有什么想法吗?
最佳答案
因为您对具有模式的行感兴趣,所以可以在匹配模式中使用start^
和end$
regex运算符。
正则表达式:^.*?(\D|^)(\d{3}[-_]+\d{4})(\D|$).*?$
演示说明:http://regex101.com/r/gQ0cE2
关于regex - 扩展的正则表达式-认为我的搜索范围可能太严格,但不确定,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14568684/