[英]REGEX to detect periods and capital letters are correctly separated by a space
考虑一下这句话:
关于LASER应用的这句话到此结束。自然地,这句话应该以空格开头。 这一个很好。这不是。
我正在寻找使用preg_replace正确分隔两个错误的“ here.Naturally”和“ fine.This”位置和句号的首字母缩写。
其他所有内容均应保持不变。
我得到的最接近的是我雇用的(?<!\\ )[AZ]
:
$this_desc = preg_replace('/(?<!\ )[A-Z]/', ' $0', $this_desc);
...但它也与首字母和首字母缩写为“ LASER”的首字母匹配... regexr.com/3ss3o
您可以使用此正则表达式进行环视搜索:
/(?<!\h)\.(?=[A-Z])/
或使其识别Unicode大写字母,请使用:
/(?<!\h)\.(?=\p{Lu})/
码:
$this_desc = preg_replace('/(?<!\h)\.(?=[A-Z])/', '$0 ', $this_desc);
正则表达式详细信息:
(?<!\\h)
:在后面断言我们在先前位置没有水平空间 \\.
:匹配一个点 (?=[AZ])
:先行断言我们前面有一个大写字母
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.