-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"

我匹配前三个结果,但不是第四个。我不认为 \1 正在工作。有什么想法吗?

BTdubs 我一直在使用http://regexpal.com/进行测试。

4

3 回答 3

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

这也可能有效

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

它不起作用,因为不能从字符类中引用反向引用(方括号内的东西[])。如另一个答案中所述,您可以在前瞻中使用反向引用,除非您使用的语言不支持环视...

简而言之,您需要做什么取决于您使用的语言(正则表达式的实现很大程度上取决于实现它们的语言)

于 2012-03-27T22:33:07.807 回答