Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 需要正则表达式来匹配后跟数字或大写的字母_Php_Regex - Fatal编程技术网

Php 需要正则表达式来匹配后跟数字或大写的字母

Php 需要正则表达式来匹配后跟数字或大写的字母,php,regex,Php,Regex,我需要一个正则表达式,它可以用换行符替换小写字母n,但仅当它后面跟一个数字0-9或一个大写字母时 例如,字符串: 公司建设100个潜在客户方式 应转换为: 公司大楼 100个潜在客户方式 我正在尝试用PHP清理此数据,因此结果表达式需要兼容。尝试以下操作: n(?=[\dA-Z]) 在PHP()中: (?=…)是一个正向前瞻-它检查我们匹配的n后面的内容,但不匹配,因此不会替换下一个字符 $result = preg_replace("/n(?=[\dA-Z])/", "\n", $subje

我需要一个正则表达式,它可以用换行符替换小写字母
n
,但仅当它后面跟一个数字
0-9
或一个大写字母时

例如,字符串:
公司建设100个潜在客户方式

应转换为:
公司大楼
100个潜在客户方式

我正在尝试用PHP清理此数据,因此结果表达式需要兼容。

尝试以下操作:

n(?=[\dA-Z])
在PHP()中:

(?=…)
是一个正向前瞻-它检查我们匹配的
n
后面的内容,但不匹配,因此不会替换下一个字符

$result = preg_replace("/n(?=[\dA-Z])/", "\n", $subject);
如果大写字母是指ASCII字母,则可以这样做

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

如果您使用的是Unicode。

@BoltClock:我让RegexBuddy生成了这个代码片段(我不懂PHP);你能详细说明一下单引号的错误吗?PHP不能理解单引号中的转义字符,只能理解双引号中的转义字符:。示例代码:(注意,它打印的是
\\n
,而不是与
“\n”
一样的新行)。顺便说一句,我发现了一个PHP正则表达式的有用站点:(我也不知道任何PHP,但是你可以用时间捕捉东西
:)
$result = preg_replace("/n(?=[\d\p{Lu}])/u", "\n", $subject);