javascript - 正则表达式查找与两个字符串匹配的模式,两个字符串之间的空格数为 'x'

标签 javascript node.js regex

我遇到一种情况,我正在寻找一个接一个的特定单词,但我不知道这些单词之间有多少空格,现在我想到了其中还有括号。

这是一个例子:

word1 word2('word3')

我正在寻找的正则表达式必须找到可以有任意数量空格的模式:

  • 单词1和单词2之间

  • word2 和 (

  • 在 ( 和 ' 之间

  • 在 ' 和 ) 之间

我只想要 word3,而不是“word3”。

有人知道正则表达式是什么样子吗?我被难住了。

我不知道 word3 是什么,但我知道 word1 和 word2 是什么。

再举一个例子:

该模式在字符串中可以多次出现。

假设我的文字如下:

car   audi('q5') blah blah blah car    audi  ( 'a3') blah blah
more blah and even more car  audi( 'r8' ) blah end.

我想要的只是:q5,a3,r8

就是这样。我不知道这些值是什么,也不知道有多少,我只知道“car”和“audi”。

最佳答案

这个怎么样:

/word1\s*word2\s*\(\s*'word3'\s*\)/g

查看此工作 Regexr .

let strings = [
  "word1 word2('word3')",
  "word1   word2('word3')",
  "word1 word2  ('word3')",
  "word1 word2(    'word3')",
  "word1 word2('word3'     )",
  "word1    word2    (   'word3'   )",
  "word1word2('word3')",
];

for (const str of strings) {
  console.log(`"${str}" -> ${/word1\s*word2\s*\(\s*'word3'\s*\)/g.test(str)}`);
}

结果:

"word1 word2('word3')" -> true
"word1   word2('word3')" -> true
"word1 word2  ('word3')" -> true
"word1 word2(    'word3')" -> true
"word1 word2('word3'     )" -> true
"word1    word2    (   'word3'   )" -> true
"word1word2('word3')" -> true

关于javascript - 正则表达式查找与两个字符串匹配的模式,两个字符串之间的空格数为 'x',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45226329/

相关文章:

node.js - req.body 未定义,但 body-parser 但已插入

regex - elixir - 替换 unicode 字符 - PCRE 不支持\L、\l、\N{name}、\U 或\u

javascript - 使用 Javascript 查找数组中最小未使用的数字

javascript - Pie Highchart 移除描述路径

node.js - 在同一个 Kubernetes Node 上多次复制 Node.js Kubernetes 服务器 Pod 是否有意义?

node.js - Windows 7 IIS 7.5 上的 iisnode 抛出 500.19 错误

使用交替时的 Java 正则表达式优先级

javascript - 仅匹配正整数和正浮点值的正则表达式

javascript - 将对象插入 mongoDB,["object Object"] 已保存

javascript - 如何非阻塞调度