2011-01-19 49 views
3

我需要一个正则表达式,它可以用换行符替换小写字母n,但只有在后面跟着数字0-9或大写字母。需要一个正则表达式才能匹配字母后跟数字或大写

例如,字符串:
Company Building
100 Prospect Way

我试图清理在PHP这个数据,所以结果表达式必须兼容:
Company Buildingn100 Prospect Way

到需要被转化。

回答

4

试试这个:

n(?=[\dA-Z]) 

在PHP(working example):

$str = preg_replace("/n(?=[\dA-Z])/", "\n", $str); 

(?=...)是一个积极的前瞻 - 它会检查我们相匹配的n后有什么,但不匹配,所以下一个字符不会被替换。

3
$result = preg_replace("/n(?=[\dA-Z])/", "\n", $subject); 

如果用大写字母表示ASCII字母,则会执行此操作。

$result = preg_replace("/n(?=[\d\p{Lu}])/u", "\n", $subject); 

如果您使用Unicode。

+0

`\ n`的双引号? – BoltClock 2011-01-19 11:04:13

相关问题