1

この質問のフォローアップ

$test = "sed -n '1h;1!H;\${;g;s/<item=\"".$name.".*</\item>/".trim(xml)."/g;p;}' ".$file;
exec($test,$cmdresult);

このコマンドは、変数として渡された指定された名前を持つすべての xml ノードを検索するために実行されます。ここでの唯一の問題は、一致が最初のノードを超えて</item>次のノードに、最終的に最後の</item>.

これを貪欲にしないにはどうすればよいですか?

4

1 に答える 1

2

貪欲でない一致よりも負のクラスを使用する方が良い場合があります。これにより、より細かい制御が可能になり、少し効率的になります。IE はすべてに一致しますが、タグを閉じることはできません [^>]*. ただし、">" を含む文字列を使用できる場合、これは機能しません。これについては、ここでもう少し読むことができます: http://www.regular-expressions.info/repeat.html

于 2011-02-15T19:37:09.870 に答える