使用正则表达式在符号/数字后面击另一个单词后如何创建新行?

时间:2018-04-16 11:33:00

标签: regex

我想要输入excel / google表格的长文本文件(超过8000行)。问题是所有文本由空格分隔在一起。无论多久,我想要一个4列宽。我想使用正则表达式对单词进行排序,因为在notepad ++中这样做会更简单。所以我有类似的东西:

Foo-Bar foo2 2 20 50 Bar Foo Foo - - -

我需要排序(我需要排序的名称)。我找到一种方法,在找到一个后跟空格的数字/符号后找到下一个单词的开头后再做一行。我希望结果看起来像这样:

Foo-Bar foo2 2 20 50 
Bar Foo Foo - - -

1 个答案:

答案 0 :(得分:0)

  

查找所有包含空格和字符的数字,或者后跟短划线和字符的空格。

使用 look-behinds 预测,我们可以找到一个或多个以数字开头的空格,后跟一个字母:

(?<=\d)\s+(?=[a-zA-Z])

同样,我们可以找到一个或多个空格,后跟一个破折号,然后是一个字母:

\s+(?=-[a-zA-Z])

将这些组合在一起很简单:

(?<=\d)\s+(?=[a-zA-Z])|\s+(?=-[a-zA-Z])

搜索它,并用新行替换所有。