【发布时间】:2018-08-09 21:26:46
【问题描述】:
简而言之,我正在尝试匹配特定单词之后的单词。
所以我有一个字符串是
Name=James
Age=55
City=New York
现在我想选择 "Age=" 之后的所有内容,但不包括 "Age="。
总之我只想选择“55”。每行末尾都有新的行字符。现在我已经查看了像 (?!(Age)).*\r
这不起作用。
在这里接受建议。
【问题讨论】:
标签: regex lookaround
简而言之,我正在尝试匹配特定单词之后的单词。
所以我有一个字符串是
Name=James
Age=55
City=New York
现在我想选择 "Age=" 之后的所有内容,但不包括 "Age="。
总之我只想选择“55”。每行末尾都有新的行字符。现在我已经查看了像 (?!(Age)).*\r
这不起作用。
在这里接受建议。
【问题讨论】:
标签: regex lookaround
您正在寻找的是“积极的后视”
(?<=your pattern)
这看起来在当前位置的后面,它需要匹配。
所以在你的情况下,你想做:
(?<=Age=).*$
【讨论】:
试试这个:
(?<=Age=).*
你必须使用lookbehind。
请注意,并非所有正则表达式都有后向功能(例如 Javascript 的一个没有)
【讨论】:
"(?<=Age=).*$"
kent$ echo "Name=James
dquote> Age=55
dquote> City=New York "|grep -Po "(?<=Age=).*$"
55
【讨论】:
答案是
(?<=Age=)\w+
\w 匹配任何单词字符 (a-z,0-9)
【讨论】: