每三个连续十进制数后的换行符

时间:2015-06-09 06:00:49

标签: regex

我有一个字符串,其数据类似于以下内容......

  

我将是3.0 0.0 3.0非常感谢2.0 1.0 4.0任何帮助   用4.0 2.0 6.0这个问题3.0 1.0 0.0

我想在字符串的每个部分中的第三个十进制数之后添加换行符,使其看起来像这样:

  

我将是3.0 0.0 3.0
非常感谢2.0 1.0 4.0
任何帮助   用4.0 2.0 6.0
这个问题3.0 1.0 0.0

我知道如何匹配十进制数,但我不知道如何匹配三个连续的十进制数,这就是我需要的。在连续第三个十进制数之后,我想插入一个换行符。

感谢您提供任何帮助/提示。

3 个答案:

答案 0 :(得分:1)

\s*(.*?(?:\s+\d+(?:\.\d+)){3})

您可以通过$1\n\1\n尝试此操作。请参阅演示。

https://regex101.com/r/nS2lT4/33

答案 1 :(得分:1)

您可以使用此正则表达式进行搜索:

(?:\b\d+\.\d+\D+){2}\d+\.\d+\b\K\s*

并使用"\n"作为替代。

RegEx Demo

\K重置报告的匹配的起点。任何先前消费的字符不再包含在最终匹配中

答案 2 :(得分:0)

您可以使用以下内容进行匹配:

((?:\d+(?:\.\d+)?\s+){3})

并替换为$1\n

请参阅DEMO