Regex 正则表达式:如果存在关键字,则匹配所有数字

Regex 正则表达式:如果存在关键字,则匹配所有数字,regex,Regex,我试图找到一个正则表达式,如果段落中存在关键字,它会搜索每个数字 例如,如果我的关键字是something,则使用以下段落: 20 30 abc 40 def something 我的正则表达式应该得到20、30和40。但对于这一点: 50 60 xyz 它应该一无所获 你们能帮我找一个好的正则表达式吗。非常感谢你!我使用的是PCRE您可以在单行(DOTALL)模式下使用此正则表达式,并带有前瞻性断言: (?s)\b\d+(?=.*\bsomething\b) 只有当输入中前面有一个单词

我试图找到一个正则表达式,如果段落中存在关键字,它会搜索每个数字

例如,如果我的关键字是
something
,则使用以下段落:

20
30
abc
40
def

something
我的正则表达式应该得到
20
30
40
。但对于这一点:

50
60
xyz
它应该一无所获


你们能帮我找一个好的正则表达式吗。非常感谢你!我使用的是PCRE

您可以在单行(DOTALL)模式下使用此正则表达式,并带有前瞻性断言:

(?s)\b\d+(?=.*\bsomething\b)
只有当输入中前面有一个单词
某物时,它才会匹配数字

正则表达式详细信息:

  • (?s)
    :启用单行模式,以便点也匹配换行符
  • \b
    :匹配单词边界
  • \d+
    :匹配1+个数字
  • (?=.*\b某物\b)
    :积极的前瞻性,以断言从当前位置来看,我们前面有一个单词
    某物

像魅力一样工作!!多谢各位