擅长:python、mysql、java
<p>你好像对逃逸很困惑。你的正则表达式有一些转义的<code>*</code>,所以我真的不知道你想在这里做什么。你知道吗</p>
<p>假设所有输入都是格式良好的(即没有缺少括号或类似的内容),并且您只想提取三个值,您可以使用以下正则表达式:</p>
<pre><code>([A-Za-z ]+)\s+(\(?[\d,]+\)?)\s+(\(?[\d,]+\)?)
</code></pre>
<p>第一部分和你的尝试是一样的。然后这个模式重复两次:</p>
<pre><code>\s+(\(?[\d,]+\)?)
</code></pre>
<p>首先,我们匹配一些空格<code>\s+</code>,然后开始捕获组。在capture组中,我们首先查看是否有任何括号<code>\(?</code>。<code>?</code>是这里要使用的量词,因为我们允许使用0或1括号。然后是一个直接的字符类<code>[\d,]+</code>来匹配数字,后面是一个可选的右括号<code>\)?</code>。你知道吗</p>
<h3><a href="https://regex101.com/r/m613oZ/1" rel="nofollow noreferrer">Demo</a></h3>