Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将重复的模式与它们之间的可选空格相匹配?_Javascript_Regex - Fatal编程技术网

Javascript 如何将重复的模式与它们之间的可选空格相匹配?

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'] 我需要提取括号中的“标记”,它们之间可能有空格,整个字符串的结尾也可能有空格 我尝

我需要从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']
我需要提取括号中的“标记”,它们之间可能有空格,整个字符串的结尾也可能有空格


我尝试过类似于
/(\(.*)(\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(/(?关于
\([^)]+)\
你可以在这篇文章中找到它: