preg_match 不会忽略换行符
preg_match will not ignore new line breaks
任务:找到 10 个单词并忽略换行符。
我已经为 multi-line
添加了 m
标志,但它没有任何效果。
<?php
$string = "this is line one\n this is line two\n this is line three\n";
$pattern = '/([A-Za-z0-9\.]+ ){1,10}([A-Za-z0-9\.]+)/m';
preg_match($pattern, $string, $matches);
echo $matches[0];
echo "\n";
?>
结果:
this is line one
期望的结果:
this is line one this is line two this is line
为了达到预期效果,我只是手动删除了新的换行符。
虽然这个期望的结果也不完美..因为它总共有 11 个单词而不是 10..如果我能做到这一点,我仍然会更接近我的使命。
我的猜测是,也许您正在尝试使用双边界量词编写一些表达式,例如:
(?i)^(\s*[a-z0-9. ]{1,10}(?=\s|$)){0,4}$
Demo 1
或
(?i)^(\s*[a-z0-9. ]{1,10}(?=\s|$)){0,5}
Demo 2
或
(?i)(\s*[a-z0-9. ]{1,10}(?=\s|$)){0,5}
Demo 3
或
(?:\S+(?=\s|$)\s*){6}
Demo 4
或
(?:\S+\s*){6}
Demo 5
或者用于捕获前六个单词,例如,
^(?:(\S+)\s*)(?:(\S+)\s*)(?:(\S+)\s*)(?:(\S+)\s*)(?:(\S+)\s*)(?:(\S+)\s*)
Demo 6
这是查找 10 个单词的正则表达式。
获得一场比赛,然后使用 space 加入第 1-10 组。
(?s)(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S)
任务:找到 10 个单词并忽略换行符。
我已经为 multi-line
添加了 m
标志,但它没有任何效果。
<?php
$string = "this is line one\n this is line two\n this is line three\n";
$pattern = '/([A-Za-z0-9\.]+ ){1,10}([A-Za-z0-9\.]+)/m';
preg_match($pattern, $string, $matches);
echo $matches[0];
echo "\n";
?>
结果:
this is line one
期望的结果:
this is line one this is line two this is line
为了达到预期效果,我只是手动删除了新的换行符。
虽然这个期望的结果也不完美..因为它总共有 11 个单词而不是 10..如果我能做到这一点,我仍然会更接近我的使命。
我的猜测是,也许您正在尝试使用双边界量词编写一些表达式,例如:
(?i)^(\s*[a-z0-9. ]{1,10}(?=\s|$)){0,4}$
Demo 1
或
(?i)^(\s*[a-z0-9. ]{1,10}(?=\s|$)){0,5}
Demo 2
或
(?i)(\s*[a-z0-9. ]{1,10}(?=\s|$)){0,5}
Demo 3
或
(?:\S+(?=\s|$)\s*){6}
Demo 4
或
(?:\S+\s*){6}
Demo 5
或者用于捕获前六个单词,例如,
^(?:(\S+)\s*)(?:(\S+)\s*)(?:(\S+)\s*)(?:(\S+)\s*)(?:(\S+)\s*)(?:(\S+)\s*)
Demo 6
这是查找 10 个单词的正则表达式。
获得一场比赛,然后使用 space 加入第 1-10 组。
(?s)(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S).*?(?<!\S)([A-Za-z0-9\.]+)(?!\S)