Javascript 如何将重复的模式与它们之间的可选空格相匹配?
我需要从JS中的字符串中提取以下内容:Javascript 如何将重复的模式与它们之间的可选空格相匹配?,javascript,regex,Javascript,Regex,我需要从JS中的字符串中提取以下内容: 'Sdfg dfg ldfgh (abc)' => ['abc'] 'Sdfg dfg ldfgh (abc) ' => ['abc'] 'Sdfg dfg ldfgh (abc) (cde)' => ['abc','cde'] 'Sdfg dfg ldfgh (abc)(cde) (efgh)' => ['abc', 'cde', 'efgh'] 我需要提取括号中的“标记”,它们之间可能有空格,整个字符串的结尾也可能有空格 我尝
'Sdfg dfg ldfgh (abc)' => ['abc']
'Sdfg dfg ldfgh (abc) ' => ['abc']
'Sdfg dfg ldfgh (abc) (cde)' => ['abc','cde']
'Sdfg dfg ldfgh (abc)(cde) (efgh)' => ['abc', 'cde', 'efgh']
我需要提取括号中的“标记”,它们之间可能有空格,整个字符串的结尾也可能有空格
我尝试过类似于
/(\(.*)(\s?\(.*)+/
)的方法,但这还不足以收集所有标记。如何在标记之间和之后使用这些可选空格提取所需的所有内容?您可以匹配连续的括号子字符串,然后拆分结果:
var s='Sdfg-dfg-ldfgh(abc)(cde)(efgh)';
var m=s.match(/\([^()]*\)(?:\s*\([^()]*\)*/)| |[“”);
console.log(m[0]。替换(/^\(|\)$/g',)。拆分(/\)\s*\(/)代码>以下正则表达式应满足您的要求:
/(?<=\()\w*(?=\))/g)
使用String.prototype.match()
和前向和后向断言:
const extract=(string)=>string.match(/(?关于\([^)]+)\
你可以在这篇文章中找到它: