Grep正则表达式

时间:2016-02-11 02:50:36

标签: regex grep

我试图显示两个不连续的所有电话号码" - "在里面。我尝试过这些表达方式:

block_exception clear_fix

但没有一个正在发挥作用。这是我第一次使用正则表达式而且我不知道我哪里出错了

2 个答案:

答案 0 :(得分:2)

您可以尝试以下方式:

grep '^.*-.*-.*$' phones.txt

这将找到-相邻而不是相邻的情况。 -也可以在开头或结尾。

如果您希望将其限制为以下数字:

123-555-3456

即。 -位于“中间”并以数字分隔,您可以使用限制性更强的:

grep '[0-9]\+-[0-9]\+-[0-9]\+' phones.txt

我的样本phones.txt

012-345-678
012-345
012-345-
-012-345
012345
543838--499
--
1-2-3

第二种模式符合以下条件:

012-345-678
1-2-3

我正在使用:grep(GNU grep)2.4.2

答案 1 :(得分:0)

非连续或连续可与(--?)匹配。这是一个-字符后跟一个-,可以存在0或1次(可选地后跟)。