繁体   English   中英

REGEX用于检测句点和大写字母是否正确用空格分隔

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM