我试图找到一个字符串的多次出现,还需要在匹配的单词之后找到字符串。 我会解释清楚的。
首先:
$string = "Apple = A fruit which keeps u healthy\n Ball = Used to play games \nApple = A fsadasdasdit wasdashich keeps u healthy\n";
$keyword = "apple";
$pattern = '/^.*?\b'.$keyword.'\b.*/i';
$res = preg_match_all($pattern , $string , $matches);
print_r($matches);
在这里,我试图在字符串中找到 apple 的出现。但是,它只显示第一个单词 apple。但它没有显示第二个词。
第二:
如果我找到所有匹配关键字的单词。我需要单词后面的字符串。
这意味着,
在这里,Apple 匹配了两次
第一次如果关键字匹配,我会得到这个 Apple = A fruit which keeps u healthy
。
现在,我需要将 A fruit which keeps u healthy
存储在一个变量中。
苹果第二次在这里匹配,我将得到 Apple = A fsadasdasdit wasdashich keeps u healthy\n
我需要存储 A fsadasdasdit wasdashich keeps u healthy
另一个变量。
请帮我做这件事。提前致谢!
最佳答案
你需要这个正则表达式:
'/\bapple\W*(.*)$/mi'
并且您想要的字符串在匹配组 #1 中可用。
在线演示:http://regex101.com/r/nV2mI8
代码:
$re = '/\b' . $keyword . '\W*(.*)$/mi';
$str = 'Apple = A fruit which keeps u healthy
Ball = Used to play games
Apple = A fsadasdasdit wasdashich keeps u healthy';
preg_match_all($re, $str, $matches);
关于php - 在php中使用正则表达式查找字符串中单词的多次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22559721/