-1

一部の html コードに一致する正規表現を作成しましたが、うまく動作しません。「wp-caption」以降の部分に問題があります。

class=(["\'])(?:[\w\s])*?wp-caption[\s\1]

一致させたいコード:

class="wp-caption"
class='wp-caption'
class="wp-caption foo"
class="foo wp-caption"

最初の 3 つの結果は一致しますが、4 番目の結果は一致しません。\1 が機能しているとは思えません。何かご意見は?

テスト目的でhttp://regexpal.com/を使用しています。

4

3 に答える 3

0
class=(["\'])(?:[\w\s])*wp-caption[\w\s]*\1
于 2012-03-27T21:01:06.087 に答える
0

後方参照は文字クラス (角括弧内のもの) 内から参照できないため、機能していません[]。別の回答で述べたように、ルックアラウンドをサポートしていない言語を使用していない限り、ルックアヘッドで後方参照を使用できます...

要するに、何をする必要があるかは、使用している言語によって異なります (正規表現の実装は、実装している言語に大きく依存します)

于 2012-03-27T22:33:07.807 に答える
0

これも効くかも

class\s*=\s*(['"])(?:(?!\1).)*wp-caption(?:(?!\1).)*\1
于 2012-03-27T22:09:35.390 に答える