正则表达式从组中排除字符

Regex exclude character from the group

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

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

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

例如:

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

St.M > 匹配。 (正确)

2.0 > 不匹配(正确)

您知道如何从结果中“排除”这些其他字符并仅匹配点吗?

感谢您的帮助

您可以使用正后视 (?<=) 断言字符 class 和左侧的特定范围来缩短模式。

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

Regex demo

根据评论,具有正前瞻性的模式

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

Regex demo