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

.net最短字符串正则表达式,.net,regex,string,shortest,.net,Regex,String,Shortest,如何找到最短的字符串,它应该返回的第一个实例 我有这根绳子。我正在寻找td,其值包含blabla和结束td。例如: <tr blabla><td>blabla big content</td></tr><tr><td>thisisnot</td></tr> blabla大内容这不是 我只想要这根绳子 <tr blabla><td>blabla big content

如何找到最短的字符串,它应该返回的第一个实例

我有这根绳子。我正在寻找td,其值包含blabla和结束td。例如:

  <tr blabla><td>blabla big content</td></tr><tr><td>thisisnot</td></tr>
blabla大内容这不是
我只想要这根绳子

  <tr blabla><td>blabla big content</td></tr>
blabla大内容
我在.net中使用这个正则表达式

<tr.*><td>blabla.*</td></tr>
blabla*
我是新来的regex


有谁能告诉我出路吗?

正则表达式天生贪婪——它会尝试匹配满足该模式的最长字符串

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

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

这将创建一个捕获组,您需要查询regex结果。

regex本质上是贪婪的-它将尝试匹配满足模式的最长字符串

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

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

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

使用
(?使用
(?强制链接)。不,这是一个非常小的html内容,我正试图解析它。只需将其视为纯文本而不是html。用Mike Holmes不朽的话来说,“如果你要做某事,第一次就做好。”不要使用正则表达式来解析HTML,即使它很小,因为这些东西永远不会很小。使用HTML解析器。强制链接。不,这是一个非常小的HTML内容,我正在尝试解析。只需将其视为纯文本而不是HTML。用Mike Holmes不朽的话来说,“如果你要做某事,第一次就做对。”不要使用正则表达式来解析HTML,即使它很小,因为这些东西永远不会很小。使用HTML解析器。