我有以下字符串:
关键字|标题| 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来实现这个目标?
答案 0 :(得分:6)
答案 1 :(得分:1)
如果你想继续使用正则表达式来避免手动循环,那么我建议使用这个语法并使用[\w\W]*
语法并提供可读性:
$anchor = '/([^|]*) \| ([^|]*) \| ([^\s|]+)/x';
使用显式否定字符类会更加健壮。 (我假设标题和网址都不能包含|
。)