【问题标题】:Regex exclude character from the group正则表达式从组中排除字符
【发布时间】:2021-02-07 10:33:03
【问题描述】:

我正在尝试编写这个正则表达式来匹配带有一些规则的点

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

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

例如:

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

St.M> 匹配。 (正确)

2.0 > 不匹配(正确)

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

感谢您的帮助

【问题讨论】:

标签: regex regex-lookarounds regex-group


【解决方案1】:

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

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

Regex demo

根据 cmets,具有正向前瞻的模式

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

Regex demo

【讨论】:

  • 我还添加了几个选项来完成这个 - (?&lt;=[a-zA-ZÀ-ž])\.+ *(?=[^.,])
  • @PetrJelínek 我已将模式添加到答案中。请注意,\.+ 匹配一个点的 1 次或多次。
猜你喜欢
  • 2011-05-05
  • 1970-01-01
  • 2019-08-03
  • 2014-04-15
  • 2021-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多