首页 > 解决方案 > 正则表达式从组中排除字符

问题描述

我正在尝试编写此正则表达式以将点与一些规则匹配

(\.+ *|([a-zA-ZÀ-ž]\.\d))(?=[^\d{1}(\.\d{1})])(?=[^.,])

但是我的正则表达式在点之前和之后也匹配了几个字符

例如:

č.1 ​​> 匹配 č.1(不正确,匹配应该只有 .)

St.M > 匹配。(正确的)

2.0 > 不匹配(正确)

你有什么想法,如何从结果中“排除”这些其他字符并只匹配点?

谢谢你的帮助

标签: regexregex-lookaroundsregex-group

解决方案


您可以使用积极的后向(?<=)断言来缩短模式,将特定范围的字符类断言到左侧。

(?<=[a-zA-ZÀ-ž])\.

正则表达式演示

根据评论,具有积极前瞻的模式

(?<=[a-zA-ZÀ-ž])\.+ *(?=[^.,])

正则表达式演示


推荐阅读