.net最短字符串正则表达式

时间:2011-05-19 21:29:32

标签: .net regex string shortest

如何找到最短的字符串,首先应该返回

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

  <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>

我是regex的新手......

任何人都可以告诉我出路。

2 个答案:

答案 0 :(得分:6)

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

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

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

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

答案 1 :(得分:0)

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