使用RegEx(正则表达式)选择特定单词后的单词

时间:2011-10-27 14:54:24

标签: regex lookaround

总之,我试图匹配一个特定单词之后的单词。

所以我有一个

的字符串
Name=James  
Age=55  
City=New York  

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

所以简而言之,我只想选择“55”。每行末尾都有新的行字符。现在我已经看过像这样的外观 (?!(Age)).*\r

哪个不起作用。

在此提出建议。

4 个答案:

答案 0 :(得分:1)

您正在寻找的是“积极的外观”

(?<=your pattern)

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

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

(?<=Age=).*$

答案 1 :(得分:0)

试试这个:

(?<=Age=).*

你必须使用lookbehind。

请注意,非所有正则表达式都有后顾之忧(例如Javascript的那个没有)

答案 2 :(得分:0)

"(?<=Age=).*$"

kent$ echo "Name=James  
dquote> Age=55  
dquote> City=New York "|grep -Po "(?<=Age=).*$"
55

答案 3 :(得分:0)

答案是 (?<=Age=)\w+

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