【问题标题】:Trying to figure out why my regex command won't work [duplicate]试图弄清楚为什么我的正则表达式命令不起作用[重复]
【发布时间】:2020-12-15 19:47:31
【问题描述】:

我有一个问题要解决,我想知道为什么我的正则表达式不起作用。匹配包含顶行的文本字典中的单词是一个简单的练习。我相信我有一个解决方案,但 grep 每次都出现空白:

grep ^[qwertyuiop]+$ /opt/~~~~~~/data/web2

这是我的命令,它什么都不做,但如果我只是输入:

grep [qwertyuiop] /opt/~~~~~~/data/web2

它匹配带有第一行字母的单词。谁能告诉我为什么它不起作用?谢谢大家的时间。

【问题讨论】:

  • -E 添加到您的grep 命令中。

标签: grep


【解决方案1】:

你非常接近。 使用 grep 您想使用 -x 标志来匹配整行。

grep -x '[qwertyuiop]\+' /usr/share/dict/american-english

然后一个简单的转义 + 来匹配多个字符。

如果你想避免使用 -x,你可以像这样采用你原来的方法:

grep '^[qwertyuiop]\+$' /usr/share/dict/american-english

有了转义和一些引号,它的效果非常好,虽然我认为-x 更惯用,正如其他一些人评论的那样,你也可以使用-e,尽管这可能会产生一些意想不到的后果。我推荐man grep,它提供了一个很好的概述。

【讨论】:

    【解决方案2】:

    我认为 grep 不能单独识别 ^ $+。您必须使用 grep -eegrep 才能使用这样的特殊字符

    【讨论】:

    • 你只需要逃跑。
    猜你喜欢
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 2013-02-14
    • 2021-05-18
    相关资源
    最近更新 更多