【问题标题】:Selecting the Word after a particular word using RegEx (Regular Expression)使用 RegEx(正则表达式)在特定单词之后选择单词
【发布时间】:2018-08-09 21:26:46
【问题描述】:

简而言之,我正在尝试匹配特定单词之后的单词。

所以我有一个字符串是

Name=James  
Age=55  
City=New York  

现在我想选择 "Age=" 之后的所有内容,但不包括 "Age="

总之我只想选择“55”。每行末尾都有新的行字符。现在我已经查看了像
(?!(Age)).*\r

这样的 Lookaround

这不起作用。

在这里接受建议。

【问题讨论】:

    标签: regex lookaround


    【解决方案1】:

    您正在寻找的是“积极的后视”

    (?<=your pattern)
    

    这看起来在当前位置的后面,它需要匹配。

    所以在你的情况下,你想做:

    (?<=Age=).*$
    

    【讨论】:

    • 谢谢...我在 Oracle 中运行了测试(使用 REGEXP_SUBSTR),它仍然返回 null。我什至用 RegExp 检查了一些网站和记事本应用程序,但它没有返回任何内容,我很快用 Java 敲了一些东西,它可以工作,所以谢谢,我不会发疯
    【解决方案2】:

    试试这个:

    (?<=Age=).*
    

    你必须使用lookbehind。

    请注意,并非所有正则表达式都有后向功能(例如 Javascript 的一个没有)

    【讨论】:

      【解决方案3】:
      "(?<=Age=).*$"
      
      kent$ echo "Name=James  
      dquote> Age=55  
      dquote> City=New York "|grep -Po "(?<=Age=).*$"
      55
      

      【讨论】:

        【解决方案4】:

        答案是 (?&lt;=Age=)\w+

        \w 匹配任何单词字符 (a-z,0-9)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-03
          • 1970-01-01
          • 2020-05-17
          • 1970-01-01
          相关资源
          最近更新 更多