使用javascript从给定单词向后匹配

Match backwards from a given word with javascript

本文关键字:单词 javascript 使用      更新时间:2023-09-26

使用Javascript,我需要在一些文本中找到一个短语的出现,然后将从它到最后一个5位数的数字的所有内容进行匹配。(或者至少这是我所知道的描述我需要什么的最好方法)

考虑以下文本:


24854

随机词

结束词

34975

随机词

结束词

47593

随机单词

结束词

目标词

32302

随机词

结束词


  • 鉴于以上情况,我希望我的正则表达式能够匹配从47593Target Word的Everything
  • 每个匹配都应包括47593Target Word
  • 它需要贪婪,因为在我的实际文本中会有多个匹配项,我需要将它们全部返回到一个数组中

这就是我尝试过的:.match(/[0-9]{5}['s'S]+?Target Word/g)

我的问题(和往常一样)是新的线路。为了跨多行匹配,我使用['s'S],但这样做会使正则表达式匹配从第一个5位数到第一次出现Target Word 的所有内容

我怎样才能改变这一点以达到预期的结果?我想我需要使用lookbacking,但我发现的大多数例子都让我很困惑。

您可以使用负前瞻,

[0-9]{5}(?:(?![0-9]{5})['S's])*?Target's*Word

演示

上面的负前瞻(?:(?![0-9]{5})['S's])*断言,在5位数字之后,匹配任何空格或非空格字符零次或多次,但它不能是5位数字。

如果随机单词中没有5位数的模式,您可能会使用

/(['d]{5}(?:[^'d]{5})+?Target Word)/gm

此处演示