我的文字是:
120 something 130 somethingElse Paris
我的目标是捕获130 somethingElse Paris
,这意味着只有最后一次出现的数字之前 Paris
我试过了:
\d+.*Paris
但这会捕获WHOLE字符串(从第一次出现的数字开始)
规则是:
Paris
之前捕获所有内容,直到找到第一个数字。有任何线索吗?
问候
答案 0 :(得分:1)
答案 1 :(得分:1)
减少追溯而不依赖贪婪:
\d+[^0-9]*Paris
答案 2 :(得分:1)
最后一次出现
^code:[ ]([0-9a-f-]+)(?:(?!^code:[ ])[\s\S])*Paris
您必须自定义文字。
请参阅:
Regex match everything from the last occurrence of either keyword
Match from last occurrence using regex in perl
RegExp: Last occurence of pattern that occurs before another pattern
答案 3 :(得分:0)
你应该加一个?在*之后让它变得不贪婪。像这样:
\d+.*?Paris
答案 4 :(得分:0)
您可以使用此模式:
(\d+\D*?)+Paris
捕获组的其他出现被最后一次覆盖。
延迟量词*?
用于强制模式停在第一个单词“Paris”。否则,在一个包含多个单词“Paris”的字符串中,该模式将使用贪婪的量词返回最后一个单词“Paris”之后的最后一个组。