我想匹配整行,并在该行上匹配单词/短语!我尝试了这个:
preg_match("/PHRASE/i", $dictionary,$matches);
Run Code Online (Sandbox Code Playgroud)
但是我只得到匹配的单词!但我需要整条线!超过15K条线!
只需使用
^.*PHRASE.*$
Run Code Online (Sandbox Code Playgroud)
^ 匹配行首
.* 匹配换行符以外的任意数量的字符
PHRASE 匹配您的关键字/短语
.* 如上
$ 匹配行尾。
您可能还想PHRASE用单词边界锚点包围(如果您的短语确实是一个单词或多个单词):^.*\bPHRASE\b.*$仅当单独存在时才匹配PHRASE(而不是另一个单词的一部分,例如PHRASEBOOK)。
因此,如果要将正则表达式分别应用于每行,请使用
preg_match('/^.*PHRASE.*$/i', $dictionary, $matches)
Run Code Online (Sandbox Code Playgroud)
如果您将所有行都包含在长的多行字符串中,并且想要遍历包含短语的所有行,请使用:
preg_match_all('/^.*PHRASE.*$/im', $dictionary, $matches, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($matches[0]); $i++) {
# Matched text = $matches[0][$i];
}
Run Code Online (Sandbox Code Playgroud)
请注意,/m修饰符允许^并$匹配每行的开始和结尾(而不仅仅是字符串的开始/结尾)。
| 归档时间: |
|
| 查看次数: |
2475 次 |
| 最近记录: |