2016-10-26 7 views
0

開かれたHTMLタグに一致するRegExを書き込もうとしていますが、classという属性が付いています。ただ、次のように:RegExで特定の属性のHTMLタグと照合する

<!-- these should match --> 
<div class=" 
<div class="> 
<img src="image.jpg" class=" 
<img src="image.jpg" class="> 

<!-- these should not match --> 
<div> class=" 
</div class="> 

これまでのところ、私が持っている:

<[^/^>]+> 

これは、任意のHTML開始タグと一致します。私は上記の例のように、そこにclass属性を探すためにそれを適応させようとしています。

<[[a-z]{1,} class=">? 

これは本当に簡単で、あなただけの例にマッチします:

答えて

0

はこれを試してみてください。どのような場所でもclass属性を持つ開始タグをキャッチしたい場合は、もっと複雑な処理を行う必要があります。オンライン正規表現、かなり役に立つ少し遊び場をテストするための https://regex101.com/

はまた、私はこれを使用したいです。

+0

ああ、あなたは私のマッチの例がとてもシンプルであることについて良い点を挙げています。私は少し違う試合で質問を編集しました。 RegExを調整してもそれに合わせるにはどうすればいいですか? – gosseti

+0

連鎖する必要があるかもしれません。最初にすべてのタグを見つけて、クラス内で一致させます。 <[[a-z] {1、} +([a-z] {1、} = ["']。* ["'])? * [\ /]?> htmlタグが見つかるかもしれませんが、class = ['"]。* ['"]のようなクラスを探すために別の操作を行う必要があります。これはjavascriptの正規表現です、実際にHTMLを処理するためにどの言語を使用していますか? – rob

+0

ありがとうございます。 JavaScriptを使用してHTMLをエスケープされていない文字列または非初期化文字列として読み込みます。 – gosseti

関連する問題