我遇到一种情况,我正在寻找一个接一个的特定单词,但我不知道这些单词之间有多少空格,现在我想到了其中还有括号。
这是一个例子:
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/