cygwin中正则表达式中的元字符不是大括号吗?

时间:2015-07-09 02:22:26

标签: regex cygwin curly-brackets

我想在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]的匹配时间?

我的理解是错误的吗? 希望有人能帮助解释这种混乱,提前谢谢!

祝你好运!

1 个答案:

答案 0 :(得分:1)

man re_format

  

过时("基本")正则表达式在几个方面有所不同。 [...]边界的分隔符为\{\}{}本身就是普通字符。

使用egrep(或等效地,grep -E)来增强正则表达式,这对您来说可能比较熟悉。