如何只匹配一个字符串而不是另一个字符串

时间:2016-12-21 21:37:04

标签: regex powergrep

这是字符串1:

<td class="AAA"><span class="BBB">Text1</span></td>

我想删除跨度,看起来像这样:

<td class="BBB">Text1</td>

这个正则表达式很容易:

Search: <td class="AAA"><span class="BBB">(.*)</span></td>
Replace: <td class="BBB">$1</td>

问题:有时字符串看起来像这样(字符串2):

<td class="AAA"><span class="BBB">Text1</span>-<span class="BBB">Text2</span></td>

由于2个结束标记也匹配。但我不希望它完全匹配。我如何只找到字符串1?

1 个答案:

答案 0 :(得分:1)

不是匹配匹配组中的任何字符,而是匹配除开放<之外的所有字符:

Search: <td class="AAA"><span class="BBB">([^<]*)</span></td>
Replace: <td class="BBB">$1</td>

这是假设您的Text1不包含<字符。