Javascript正则表达式匹配不同的组

时间:2014-04-07 06:58:33

标签: javascript regex

我想用每个匹配组内的单词替换字符串的不同部分。所以,如果我有这个字符串:

<td>{$phrase->getId()}</td>
<td>{$phrase['name']}</td>
<td>{$phrase['id']}</td>

我希望能够得到字符串:

<td>id</td>
<td>name</td>
<td>id</td>

我尝试了这个表达式:

\{\$\w+(?:\['(\w+)'\]|->get(\w+)\(\))\}

但是当我input.replace(regex, "$1")时,我得到了:

<td></td>
<td>name</td>
<td>id</td>

1 个答案:

答案 0 :(得分:3)

替换为$1$2,因为您已使用|或运算符

像这样:input.replace(regex, "$1$2");

对于第一个句子,Id进入第二个捕获组,因此它与第一个不匹配。