要匹配任意字符但排除某个字符,可以使用字符类和否定符。
现有的正则表达式将匹配包含引号或单引号中的任何字符。但是,您希望排除双引号。为此,可以使用否定字符类:
`
<br>$pattern = "/<img .<em alt="如何用正则表达式匹配包含单引号或双引号的字符串,但排除双引号中的内容?" >src=['"](.</em>?)(<em>SKIP)(</em>F)|/?>/i";<br>`
否定字符类 [!双引号] 匹配除双引号之外的任何字符。它被包裹在原子组中 (),以便 *SKIP 和 *F 修饰符只应用于否定字符类。*SKIP 修饰符跳过匹配否定字符类的部分,而 *F 尝试匹配它的右侧文本,从而有效地忽略双引号。
因此,修改后的正则表达式应该可以匹配带有或不带有引号的图像源。
补充说明:其他语言中,1 可能需要写成 。此外,也可以使用非捕获组 (?:...) 来排除源部分进行捕获,如示例中所示。
以上就是如何用正则表达式匹配包含单引号或双引号的字符串,但排除双引号中的内容?的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系 yyfuon@163.com