php - 在php中使用正则表达式查找字符串中单词的多次出现

标签 php regex string

我试图找到一个字符串的多次出现,还需要在匹配的单词之后找到字符串。 我会解释清楚的。

首先:

$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/

相关文章:

php - Zend_Form 获取错误

动态选择文件的 PHP 文件大小

php - JSONException : Value <br cannot be converted into JSONobject

ruby - 正则表达式匹配所有字母数字主题标签,没有符号

c++ - 从字符串中标记/提取信息的最佳方法

php - 使用 PHP ob_start 和 ob_get_clean 输出流

javascript - js正则表达式替换多个反向引用

javascript - 正则表达式 - 意外的量词

php - 查找包含非重复特定字母的单词?

c# - 使用 string.format 和 List<T>.Count() 进行动态字符串格式化