带有括号和grep命令的正则表达式字符类

时间:2017-03-28 10:33:19

标签: regex grep

使用grep命令的正则表达式。例如,假设我有一个名为regular.txt的文件,其中包含如下所示的日期:

$ cat regular.txt
    july
    jul
    Fourth
    4th
    4   

所以我尝试使用以下处理方法匹配输入文件中的所有这些文本:

方法1:仅匹配第四| 4 | 4

   $egrep '(Fourth|4th|4)` regular.txt

输出方法1:

    Fourth
    4th
    4   

方法2:使用可选括号

仅匹配第四|第四| 4
  $ egrep '(Fourth|4(th)?)` regular.txt

输出方法2:

    Fourth
    4th
    4   

方法3:匹配整个文件7月,jul,Fourth,4th,4。我正在使用如下命令:

$ egrep 'july? (Fourth|4(th)?)` regular.txt

输出方法3:此处没有任何内容匹配。怎么做?

你可以帮我解决这个问题吗?

谢谢,

1 个答案:

答案 0 :(得分:2)

您的july? (Fourth|4(th)?)正则表达式匹配模式的序列jul后跟可选的y,然后是空格,然后是2个替代:{{1或Fourth可选地跟随4子字符串。

如果您打算将thjul作为第三种选择,请将其添加到分组构造中:

july