You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则表达式(\.\s)拆分长字符串,忽略大写字母/数字后的匹配

正则拆分字符串:排除数字/大写字母后的点空格

原始字符串

Hello. Hello.bye. 125. 000. 182.000. U. S. A. 

当前拆分方式及问题

使用正则 "\.\s" 拆分后得到以下结果:

Hello
Hello.bye
125
000
182.000
U
S
A

但需要满足当.\s前为数字或大写字母时不拆分,期望拆分结果为:

Hello
Hello.bye
125. 000
182.000
U. S. A.

错误尝试分析

你之前用的正则 (?(?<!([A-Z]|[0-9]))(\.\s)) 语法有误:(?(condition)yes|no) 是正则的条件分支结构,不是用来单纯匹配符合断言的分隔符的写法,所以无法生效。

正确正则表达式

直接使用负向后行断言来限定匹配规则,正确的拆分正则为:

(?<![A-Z0-9])\.\s

原理说明

  • (?<![A-Z0-9]):负向后行断言,确保当前位置的前一个字符不是大写字母(A-Z)或数字(0-9)
  • \.\s:匹配点号加空格的组合

这样拆分时,只会把那些前面不是数字/大写字母的.\s作为分隔符,保留数字、大写字母后的点空格,得到你想要的结果。

内容的提问来源于stack exchange,提问作者Harsh Vardhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 03:45:39