【问题标题】:Line break after every three consecutive decimal numbers每三个连续的十进制数字后换行
【发布时间】:2015-06-09 06:00:48
【问题描述】:

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

我会 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

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

感谢任何帮助/提示。

【问题讨论】:

    标签: regex


    【解决方案1】:

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

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

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

    RegEx Demo

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

    【讨论】:

      【解决方案2】:
      \s*(.*?(?:\s+\d+(?:\.\d+)){3})
      

      您可以试试这个。替换为$1\n\1\n。查看演示。

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

      【讨论】:

        【解决方案3】:

        你可以使用以下来匹配:

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

        并替换为$1\n

        DEMO

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-27
          • 1970-01-01
          • 2016-07-31
          • 2019-03-29
          • 1970-01-01
          • 1970-01-01
          • 2019-07-24
          • 2015-12-15
          相关资源
          最近更新 更多