0

怠け者向けの正規表現リンク: http://regexr.com?33udv

テスト文字列:

<li><a href="#"><strong>Start</strong></a></li><li><a href="#">End</a></li>

「スタート」で検索した時に合わせたい

<li><a href="#"><strong>Start</strong></a></li>

私のパターンはこれです:

<li>(?!<li>)*Start.*?</li>

私の問題は、「開始」を含むものだけを一致させたい場合に、両方のリストの子を一致させることです。

注: これは非常に予測可能な html 文字列であり、常に同じように見えます。正規表現がhtmlを解析すべきではないことは知っていますが、問題は否定先読みの理解に関するものです。

解決:

<li>((?!<li>).)*Start.*?</li>
4

1 に答える 1

2

あなたが投稿した表現は、リンクからのものとは異なります。私はリンクからのものに焦点を当てます。

.*貪欲な場合、最長の一致を見つけようとします。あなたはそれを怠け者にしたい:

<li>.*?Start.*?</li>
于 2013-02-27T15:38:43.617 に答える