我需要一个正则表达式,可以用换行符替换小写字母n
,但只有在后跟数字0-9
或大写字母时才会替换。
例如,字符串:
Company Buildingn100 Prospect Way
应转换为:
Company Building
100 Prospect Way
我正在尝试在PHP中清理这些数据,因此生成的表达式需要兼容。
答案 0 :(得分:4)
试试这个:
n(?=[\dA-Z])
在PHP中(working example):
$str = preg_replace("/n(?=[\dA-Z])/", "\n", $str);
(?=...)
是一个积极的先行 - 它会检查我们匹配的n
之后的内容,但不匹配,所以下一个字符不会被替换。
答案 1 :(得分:3)
$result = preg_replace("/n(?=[\dA-Z])/", "\n", $subject);
如果用大写字母表示ASCII字母,则会执行此操作。
$result = preg_replace("/n(?=[\d\p{Lu}])/u", "\n", $subject);
如果您使用的是Unicode。