在正则表达式中匹配任意字符,但排除特定字符
你需要匹配一篇文章中所有图片,但排除引号 (")。你的原始尝试是:
$pattern = "/@@##@@/i";
但添加了排除引号的规则后,它就不再匹配了。
解决方法是使用正则表达式的否定组概念。否定组允许你匹配不包含特定字符的字符串。在你的情况下,你希望匹配不包含引号的子串,因此修改后的正则表达式为:
@@##@@]+)
其中 [^"'>] 表示不包含引号、单引号或大于号的字符的子串。
更新的正则表达式解释:
- : 匹配 标签的开头。
- .*?: 匹配尽可能少的任意字符(惰性匹配)。
- s: 匹配一个空格。
- src=: 匹配 src= 属性。
- (?:["']?): 匹配可选的引号或单引号(捕获组 1)。
- [^"'>] : 匹配不包含引号、单引号或大于号的一个或多个字符(捕获组 2)。
通过使用否定组,你可以匹配所有 元素,同时排除引号。
以上就是正则表达式如何匹配图片链接并排除引号?的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系 yyfuon@163.com