1

最短の文字列を見つける方法、最初に返されるはずの文字列

私はこの弦を持っています。td を閉じる blabla を値に含む 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 に答える