比如:
<ul>
<li> - 中华人民共和国 - </li>
</ul>
要提取出“中华人民共和国”,正则表达式应该怎么写?
利用提取中文字符的思路:
<?php
$str = '<ul>
<li> - 中华人民共和国 - </li>
</ul>';
preg_match('/<ul>\s*<li>[^\x{4e00}-\x{9fff}]*([\x{4e00}-\x{9fff}]*)[^\x{4e00}-\x{9fff}]*<\/li>\s*<\/ul>/u', $str, $arr);
print_r($arr);
// 结果
/*
Array
(
[0] => <ul>
<li> - 中华人民共和国 - </li>
</ul>
[1] => 中华人民共和国
)
*/
可以先使用trim()
,然后再正则么?
能不用正则的坚决不用正则。
PHP直接解析DOM然后+trim
trim
的第二个参数很方便
就算一定要用正则也要让正则干最少的工作。
trim(' - ')