我想在cygwin中使用grep在文本文件中搜索电话号码。
数字是0570-2770521
,我使用正则表达式
“[0-9] {4} - [0-9] {7}”,总命令为grep "[0-9]{4}-[0-9]{7}" ./list.txt
,但不起作用。
然后我改为grep "[0-9]\{4\}-[0-9]\{7\}" ./list.txt
,它有效!
但由于{}是元字符,如果它们是逃避它们,它们只是文字字符,那么它们如何表示[0-9]的匹配时间?
我的理解是错误的吗? 希望有人能帮助解释这种混乱,提前谢谢!
祝你好运!
答案 0 :(得分:1)
man re_format
:
过时("基本")正则表达式在几个方面有所不同。 [...]边界的分隔符为
\{
和\}
,{
和}
本身就是普通字符。
使用egrep
(或等效地,grep -E
)来增强正则表达式,这对您来说可能比较熟悉。