我有这些文字grep
正在搜索:
629-732-5225
(224) 662-6288
(772) 732-6333
(743)223-6992
104-692-7385
这是我用来匹配以上所有内容的命令:
grep "(\?[0-9]\{3\})\?[ -][0-9]\{3\}-[0-9]\{4}" *.txt
这是输出:
h1.txt: 629-732-5225
h2.txt: (224) 662-6288
h3.txt: (772) 732-6333
h5.txt: 104-692-7385
与h4.txt
的文字不符。不同之处在于,在右括号后没有空格。我认为[ -]
会涵盖那个。为什么不起作用?
答案 0 :(得分:2)
您要匹配空格或连字符。你需要一个空格或一个连字符,或者什么也不需要。
使用[ -]?
使匹配成为可选项。