我正在使用preg_match()
搜索文件并列出结果。
在我的档案中,我有:
city 1 | address 1 | phone 1
city 2 | address 2 | phone 2
city 3 | address 3 | phone 3
例如,如果我搜索address 1
,它会显示整行。
有没有办法只显示'地址1'?
答案 0 :(得分:0)
你应该使用Subpatterns。您可以使用这些括号将子模式放在正则表达式中:
()
它们之间的所有内容都是您的子模式,并且如果匹配,将与匹配项一起添加到您的数组中。
比较一下:
$subject = 'thiswhatiamlookingforallday';
preg_match('/.*whatiamlookingfor.*/', $subject, $matches);
print_r($matches);
到此:
$subject = 'thiswhatiamlookingforallday';
preg_match('/.*(whatiamlookingfor).*/', $subject, $matches);
print_r($matches);
它应该给你一些暗示。
答案 1 :(得分:-1)
我认为您使用的参数匹配,不是吗?
如果提供了匹配,那么它将填充搜索结果。 $ matches [0]将包含与完整模式匹配的文本, $ matches [1]将具有与第一个捕获的匹配的文本 带括号的子模式,依此类推。