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);