我写了一个正则表达式试图匹配一些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/进行测试。
答案 0 :(得分:1)
这可能也有用
class\s*=\s*(['"])(?:(?!\1).)*wp-caption(?:(?!\1).)*\1
答案 1 :(得分:0)
class=(["\'])(?:[\w\s])*wp-caption[\w\s]*\1
答案 2 :(得分:0)
它不起作用,因为无法在字符类(方括号[]
内的内容)中引用反向引用。正如另一个答案中所提到的,你可以在前瞻中使用反向反射,除非你使用的是不支持外观的语言......
简而言之,您需要做的事情取决于您使用的语言(正则表达式实现在很大程度上取决于实现它们的语言)。