Php 如何访问捕获组而不是完整字符串匹配?
我正在使用Php 如何访问捕获组而不是完整字符串匹配?,php,preg-match,capture-group,Php,Preg Match,Capture Group,我正在使用preg_match()在文件中搜索并列出结果 在我的档案中,我有: city 1 | address 1 | phone 1 city 2 | address 2 | phone 2 city 3 | address 3 | phone 3 例如,如果我搜索地址1,它将显示整行 有没有办法只显示“地址1”?您应该使用子模式。可以使用以下括号将子模式放入正则表达式中: () 之间的所有内容都是您的子模式,若存在匹配项,则将添加到具有匹配项的数组中 比较一下: $subject =
preg_match()
在文件中搜索并列出结果
在我的档案中,我有:
city 1 | address 1 | phone 1
city 2 | address 2 | phone 2
city 3 | address 3 | phone 3
例如,如果我搜索地址1
,它将显示整行
有没有办法只显示“地址1”?您应该使用子模式。可以使用以下括号将子模式放入正则表达式中:
()
之间的所有内容都是您的子模式,若存在匹配项,则将添加到具有匹配项的数组中
比较一下:
$subject = 'thiswhatiamlookingforallday';
preg_match('/.*whatiamlookingfor.*/', $subject, $matches);
print_r($matches);
为此:
$subject = 'thiswhatiamlookingforallday';
preg_match('/.*(whatiamlookingfor).*/', $subject, $matches);
print_r($matches);
它应该给你一个提示,告诉你该怎么做。我想你是在使用参数匹配,不是吗 如果提供了匹配项,则它将填充搜索结果。 $matches[0]将包含与完整模式匹配的文本, $matches[1]将包含与第一次捕获的文本匹配的文本 括号中的子模式,依此类推
请显示您的代码并解释其错误。您想搜索“地址1”并返回“地址1”的目的是什么?假设我在列表“地址554”中的某个位置。它们被|我搜索554时需要|来获得完整的|地址554 |@qqq123除以。你应该用任何新信息更新你的问题,而不是通过评论提供新的细节。仍然没有足够的信息提供准确/精确的答案。@qqq123您必须显示您的代码,然后我们才能适当地帮助您。在寻求有关问题的澄清和提供手册参考时,请以注释而不是答案的形式进行。这个问题缺乏提供准确答案的必要细节。