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