如何解决PHP正则表达式preg_match_all用于字符串
| 我有以下字符串: 关键字|标题| http://example.com/ 我想使用PHP函数preg_match_all ( $anchor,$key,$matches,PREG_SET_ORDER) )
目前
$anchor=\'/([\\w\\W]*?)\\|([\\w\\W]*)/\';
我得到$ matches数组:
Array
(
[0] => Array
(
[0] => keyword|title|http://example.com/
[1] => keyword
[2] => title|http://example.com/
)
)
我想得到
matches[1]=keyword
matches[2]=title
matches[3]=http://example.com
我如何修改$ anchor才能实现此目的?
解决方法
如果您想继续使用正则表达式来避免手动循环,那么建议您使用the4ѭ语法,以提高可读性:
$anchor = \'/([^|]*) \\| ([^|]*) \\| ([^\\s|]+)/x\';
使用明确的否定字符类,它会更健壮。 (我假设标题和网址都不能包含|
。)
,最简单的方法是使用explode()
而不是正则表达式:
$parts = explode(\'|\',$str);
假设所有部分都不能包含|
。但是,如果可以的话,正则表达式也不会帮助您。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。