用于匹配多行中特定单词后的单词的正则表达式

Chr*_*Kao 4 javascript regex regex-group regex-greedy visual-studio-code

在某些编辑器(如 VS Code)中,有一个正则表达式功能可以查找单词而不是“Ctrl + F”,我试图在特定单词后面找到一个单词和其他几行。

例如,如何使用正则表达式过滤那些具有特定“消息”属性的“someFunction”,如下所示:

...
someFunction({
  a: true,
  b: false
})
someFunction({
  a: true,
  b: false,
  c: false,
  d: true,
  message: 'I wnat to find the funciton with this property'
})
someFunction({
  a: true
})
...
Run Code Online (Sandbox Code Playgroud)

我试过的正则表达式是这样的:

/someFunction[.*\s*]*message/
Run Code Online (Sandbox Code Playgroud)

但它没有用

我怎样才能实现这个目标?

Emm*_*mma 7

您的表达式很好,您可能需要将其稍微修改为:

 someFunction[\S\s*]*message
Run Code Online (Sandbox Code Playgroud)

如果您还希望获得该属性,则此表达式可能有效:

(someFunction[\S\s*]*message)(.*)
Run Code Online (Sandbox Code Playgroud)

如果愿意,您可以添加其他边界,也许可以使用regex101.com

在此处输入图片说明

图形

此图显示您的表达式将如何工作,您可以在jex.im 中可视化其他表达式:

在此处输入图片说明

性能测试

此脚本根据表达式返回字符串的运行时间。

 someFunction[\S\s*]*message
Run Code Online (Sandbox Code Playgroud)

(someFunction[\S\s*]*message)(.*)
Run Code Online (Sandbox Code Playgroud)

  • 哇,你的回答太棒了!这些工具对我来说真的很有用! (2认同)