【问题标题】:Bash regex to match a word folowed by numbers or not [duplicate]Bash正则表达式匹配一个后跟数字的单词[重复]
【发布时间】:2019-11-05 12:39:18
【问题描述】:

我想匹配这些字符串valuevalue1value2。 到目前为止我得到了数字,但我还需要匹配后面没有数字的单词。

sed -e 's/value[0-9]//g'

【问题讨论】:

  • 试试这个sed -e 's/value[0-9]?//g'
  • 如果需要任意位数(包括无):`value[0-9]*'
  • @dash-o,加号表示一个或多个该字符,而不是零个或多个。
  • @accdias 我相信使用sed(默认)基本RE,'?','+','(','{'和'|'需要转义以具有特殊含义. 'value[0-9]?' 将匹配 'value0?'、'value1?'、...,但不匹配 'value'。
  • @dash-o 我在发布之前在本地对其进行了测试,它能够替换所有value,包括那些不以数字结尾的。但我明白你的意思。 Asterisk 肯定是一个更好的选择。

标签: bash sed


【解决方案1】:

您可以通过用分号分隔将多个表达式组合为一个。希望这会有所帮助。

sed  's/value[0-9]//g;s/value//g' inputfile

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-02
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    相关资源
    最近更新 更多