用于删除 DOT 的正则表达式

RegEx to remove DOT

我想去掉点 (.) 但我不知道如何写这个模式。

我有一些文本行。

E-1-2-3.1-0-0 or E-1-2-0-2.5-0 or E-1-2-0-3.5-0

但在我的文字中有些是数字,如 2.5、56.7。我不想删除这些点,因为它们是小数。

如果在行中,那么我需要删除点。 -5.2- 将是 -52-

E-1-2-3.1-0-0E-1-2-31-0-0
E-1-2-0-2.5-0E-1-2-0-25-0
E-1-2-0-3.5-0E-1-2-0-35-0

里面可以有DOT或者NOT。

关于此模式的任何帮助?

如果您只需要匹配由破折号和数字破折号包围的点,请尝试正环视:

(?<=-\d)\.(?=\d-)

演示:https://regex101.com/r/nY7fA9/1


如果您需要匹配由破折号和数字破折号(任何正数的数字)包围的点,事情就更棘手了,因为回顾在许多正则表达式中不支持量词。在这种情况下,您可以使用普通正则表达式匹配前缀并立即使用 \K:

重置匹配
-\d+\K\.(?=\d+-)

演示:https://regex101.com/r/nY7fA9/2