【发布时间】:2017-03-28 19:06:49
【问题描述】:
使用 grep 命令的正则表达式。例如,假设我有一个名为 regular.txt 的文件,其中包含如下日期:
$ cat regular.txt
july
jul
Fourth
4th
4
所以我正在尝试匹配输入文件中的所有这些文本,使用以下处理方法:
方法一:只匹配Fourth|4th|4
$egrep '(Fourth|4th|4)` regular.txt
输出方法一:
Fourth
4th
4
方法2:使用可选括号仅匹配Fourth|4th|4
$ egrep '(Fourth|4(th)?)` regular.txt
输出方法二:
Fourth
4th
4
方法 3:匹配整个文件 july, jul, Fourth, 4th, 4。我正在使用如下命令:
$ egrep 'july? (Fourth|4(th)?)` regular.txt
输出方法3:这里什么都不会匹配。如何做到这一点?
你能帮我解决这个问题吗?
谢谢,
【问题讨论】:
-
您需要 7 月或 4 日或 4 月或 7 月,然后是第四?
-
好吧,
Fourth|4(th)?|july?? -
嗨,Witor,你是对的。
-
嗨 SMA,我需要输出 7 月和 4 月。
-
这里没有“字符类”。正则表达式字符类是用于匹配集合中的单个字符的构造。