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

时间:2021-02-07 10:33:03

标签: regex regex-lookarounds regex-group

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

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

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

例如:

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

St.M > 匹配。 (正确)

2.0 > 不匹配(正确)

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

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

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

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

Regex demo

根据评论,具有正向预测的模式

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

Regex demo

相关问题