我使用这个函数来删除换行符之前或之后的三个点:
private function trimThreeDots(string $text): string {
$threeDotsAtTheBeginning = '((^|[\n]{1})[\\.]{3})';
$threeDotsAtTheEnd = '([\\.]{3}[\n]{1})';
$pattern = '/' . $threeDotsAtTheBeginning . '|' . $threeDotsAtTheEnd . '/';
return preg_replace_callback($pattern, function ($str) {
return str_replace("...", "", $str[0]);
}, $text);
}
除了这种情况外,它是有效的,即如果我有一个像这样的字符串:
"Bla bla bla...
...bla bla bla"
我只得到了一个匹配项。但是我想要获得两个匹配项,因为我需要删除三个点的所有出现。我想知道是否有更直接和高效的写法来编写这个正则表达式,并在上述情况下获得两个匹配项?
str_replace()
源字符串中放置换行符即可。 - Alex Howanskytrim()
函数),必要时再重新连接。 - Andy Gtrim()
方法不适用于此任务。第二个参数应该是一个包含要去除的字符列表。请参见 此链接。 - Cidecho trim("bla bla bla.......", '.');
- Cid