php正则匹配:如何排除中文加冒号格式
在编写正则表达式时,有时我们希望排除特定格式的字符串。比如,要匹配两个td之间的内容,但td之间不能包含中文加冒号,即不匹配"张无忌: 你真的是张三分?"。
一个直观的写法是/<td>. </td>/,但它会匹配到中文加冒号。而使用 /<td>[^(x{4e00}-x{9fa5}[::])] </td>/ 却不起作用。
正确的方法是:
立即学习“PHP免费学习笔记(深入)”;
preg_match_all('/<td>(?!.*[\x{4e00}-\x{9fa5}:]).*<\/td>/u', $input, $matches);
这个正则表达式使用负向前瞻(?!.*[x{4e00}-x{9fa5}:])来排除包含中文加冒号的字符串。它表明,在匹配的字符串前不能有任何地方包含中文加冒号。
使用这个正则表达式,你可以准确地匹配两个td之间的内容,排除包含中文加冒号的字符串。
以上就是PHP正则表达式:如何排除包含中文加冒号的字符串匹配?的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号