0

この正規表現を使用してドキュメントの小さなサブセットをキャプチャしようとしています。

preg_match('/href="(.+?)".+?>Keyword/s', $a, $b);

ただし、の直前をつかむのではなくhref=ドキュメントKeyword最初から始まり、まで下がっていきます。href=Keyword

どうすればそれをバックトラックしてhref=直前だけに保つことができKeywordますか?

4

2 に答える 2

2

入力で、アンカータグで囲まれたテキストがタグと同じ行にある場合は、sフラグを削除できます。

それ以外の場合は、より具体的な正規表現が必要です。

'/href="[^"]*"[^<>]*>Keyword/'

hrefこれは、内部のリンクにが含まれていないことを前提としています"。は[^<>]、他のタグが一致の一部になるのを防ぎます。

于 2013-02-12T07:38:09.497 に答える
0

"属性内にnoを含めることができると仮定すると、次のようにhrefして正規表現の調整を開始できます。

preg_match('/href="([^"]+?)".+?>Keyword/s', $a, $b);
于 2013-02-12T07:37:55.597 に答える