正则表达式匹配3个连续大写字母

use*_*521 0 php regex

我有以下文字:

74 avenue Emile Counor

蝙蝠B2 Appt B104

我想替换所有换行,只有当以下3个字母不是3个大写字母时.

例如,前面的示例应该变为:

74 avenue Emile Counor Bat B2 Appt B104

74 avenue Emile Counor

BAT B2 Appt B104

应该留下.

我通过正则表达式工具尝试了很多解决方案,但无法满足我的需求.

这是我到目前为止所尝试的

preg_replace("/\n([^A-Z]{3})/", " $1", $str)
Run Code Online (Sandbox Code Playgroud)

Cas*_*yte 5

如果你想否定LF后面的内容,那就是使用负前瞻:

$str = preg_replace("/\n(?![A-Z]{3})/", " ", $str);
Run Code Online (Sandbox Code Playgroud)

请注意,前瞻只是一种测试,其内容不会出现在匹配结果中.

  • @AvinashRaj:不,这只是帖子中的错误格式. (2认同)