私はこの正規表現の表現に苦労していますが、私は修正を見つけることができません。私は、javascriptベースのツールを使って式をテストして書きました。 PHPページに入れてpregとマッチングすると、結果が異なります。regexは特定の属性クラスを持つimgタグに一致します
/(<img\b src=)"([^"]+)"(.* class=".*colorme(?:.|[^"]*)"[^>]+>)/
ここでテストする例は、最初に一致させるべきではありません。これはすべてjavascriptで動作しますが、phpではなくclassクラス= "colorme"だけが一致します。何か不足していますか?一般的に
<img src="http://test.jpg" class="then" border="0" width="123" height="83">
<img src="test.jpg" border="0" alt="well watch picture" alt="tersts" class="really colorme" width="228" height="138">
<img src="test.jpeg" class="colorme then" border="0" width="123" height="83">
<img src="test" border="0" width="123" height="83" class="pic colorme then" with="me">
<img src="tests" border="0" class="colorme" width="123" height="83">
:**悪い考え**。 HTMLパーサとXPathを使用してください! JavaScriptでも、DOMを活用できます。 –
JavaScriptとPHPの正規表現のバリエーションは異なります。 (正規表現にはさまざまなバリエーションがあります)* JavaScriptで動作させても、PHPでは動作しません。構文は少し異なります。これとは別に、HTMLは標準的な言語ではないので、正規表現を単独で使用して確実に処理することはできません。あなたは近づくことができますし、あなたが解決しようとしている問題に固有の限られたユースケースのために、あなたがしようとしていることを十分に十分に行うことができます。 –
私はregex buddyを推薦することができます:http://www.regexbuddy.com/ - 正しい表現を識別してテストするのに役立ちます。準備が整うと、選択した言語に対して正しい表現を見ることができます。 – Andron