Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在记事本中使用正则表达式++;每出现第n个空格添加新行的步骤_Regex - Fatal编程技术网

Regex 在记事本中使用正则表达式++;每出现第n个空格添加新行的步骤

Regex 在记事本中使用正则表达式++;每出现第n个空格添加新行的步骤,regex,Regex,这肯定是以前问过的,但找不到我需要的答案 我有一个非常大的文件,里面有一长串用空格分隔的整数。整数长度为3或4个字符 我想把行分开,这样我就可以得到5列数字 我正试图用记事本++做这件事,因为它是目前我唯一可以使用的工具 我所拥有的例子 123 123 123 123 123 123 123 123 123 123 456 456 456 456 456 456 1231 2312 3112 1534 1254 1254 1254 2154 1522 1233 1235 1231 1234 11

这肯定是以前问过的,但找不到我需要的答案

我有一个非常大的文件,里面有一长串用空格分隔的整数。整数长度为3或4个字符

我想把行分开,这样我就可以得到5列数字

我正试图用记事本++做这件事,因为它是目前我唯一可以使用的工具

我所拥有的例子

123 123 123 123 123 123 123 123 123 123 456 456 456 456 456 456 1231 2312 3112 1534 1254 1254 1254 2154 1522 1233 1235 1231 1234
1123 4564 1534 1321 1234 1234 1234 1234 1234 123 123 123 123 123 123 132 123 123
1234 1234 1234 1234 4567 4567 4567 4567 4567 145 154 154 154
我需要的是

123 123 123 123 123
123 123 123 123 123
456 456 456 456 456
456 1231 2312 3112 1534
1254 1254 1254 2154 1522
1233 1235 1231 1234 1123
4564 1534 1321 1234 1234
1234 1234 1234 123 123
123 123 123 123 132
123 123 1234 1234 1234
1234 4567 4567 4567 4567
4567 145 154 154 154
由于行的长度不相等,事情变得复杂了

希望有人能帮忙


PS:如果最后一个示例中的空格也替换为制表符,那就太好了

所有这些替换都使用正则表达式和“.匹配换行”:

  • 首先用空格替换
    \s+
  • ((\d+\s+{5})
    替换为
    \1\n
  • (可选)将空格替换为
    \t
    (也可以在开始时执行此操作)
  • 但是,请注意,默认选项卡大小为4时,效果并不理想。您的示例至少需要5个。

    查找内容:
    (\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)

    替换为:
    \1\2\3\4\5\n

    (分别
    \1\t\2\t\3\t\4\t\5\n
    用制表符替换空格)


    搜索模式:
    Regular expression

    我建议第一步使用
    \s+$
    ,第二步使用
    ((\d+{5})
    )<代码>$在多行匹配中是
    \s
    。注意,你“帮了忙”。@AlexBall-请检查答案。谢谢,这太完美了!我很清楚,括号中的(\d+)位变成了带标记的匹配,因此\1\2 etc将这些带标记的匹配按遇到的顺序放置。这是正确的吗?你的理解是正确的。它被称为back reference,您可以找到更多详细信息