1

如何找到最短的字符串,它应该返回第一次出现

我有这个字符串。我正在寻找其值包含 blabla 并关闭 td 的 td。例如:

  <tr blabla><td>blabla big content</td></tr><tr><td>thisisnot</td></tr>

我只想要这个字符串

  <tr blabla><td>blabla big content</td></tr>

我在.net 中使用这个正则表达式

<tr.*><td>blabla.*</td></tr>

我是正则表达式的新手...

谁能告诉我出路。

4

2 回答 2

6

正则表达式本质上是贪婪的 - 它会尝试匹配满足模式的最长字符串。

您需要在模式中使用非贪婪量词。因此,不要使用“*”,而是使用“*?”,然后使用分组来“捕获”匹配项。项目的匿名捕获是通过将要捕获的组括在一组括号中来完成的。以下似乎可以解决问题:

(<tr.*?><td>blabla.*?</td></tr>).*

这将创建一个捕获组,您需要查询其正则表达式结果。

于 2011-05-19T21:44:10.753 回答
0

用作(?<=<td>)[^<]+正则表达式,然后对匹配项进行长度比较。

于 2011-05-19T21:58:13.523 回答