1. ホーム
  2. regex

[解決済み] 非欲にマッチする正規表現はどのように書けばよいですか?重複

2022-03-22 04:36:46

質問

正規表現のマッチングについて、non-greedy オプションを使用した場合のヘルプが必要です。

マッチパターンは

<img\s.*>

マッチングするテキストは

<html>
<img src="test">
abc
<img
  src="a" src='a' a=b>
</html>

でテストしています。 http://regexpal.com

この式は、以下のすべてのテキストにマッチします。 <img から最後の > . 最初に遭遇したものと一致させる必要があります > の後、最初の <img ということで、ここでは1つのマッチではなく、2つのマッチを得る必要があります。

のすべての組み合わせを試しました。 ノングリーディー ? は、成功しませんでした。

解決方法は?

欲張りでない方 ? は全く問題なく動作します。ただ ドットマッチオール オプションは、正規表現エンジン ( レジェックスパル このオプションは、あなたが使用したエンジンにもあります。これは、一般に、正規表現エンジンが . . で改行もマッチングさせたいことを明示的に伝える必要があります。 .

例えば

<img\s.*?>

は正常に動作します。

を確認します。 結果はこちら .

についてもお読みください。 どのように ドット ふるまい を様々な正規表現で表現しています。