如何使用正则表达式(PCRE)将这些文本行转换为CSV行?

时间:2017-08-16 10:07:17

标签: regex csv pcre

给出以下输入

1 foo 745
2 baz 746
unneeded characters

我希望输出如下

1;foo;745
2;baz;746

我使用正则表达式来获得所需的输出。但是,我无法摆脱垃圾字符。

正则表达式:/(\d)\s([a-z]+)\s(\d+)\s+|[\S\s]+$/x

Demo

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式进行匹配:

^(\d+)\h+([a-z]+)\h+(\d+)(?:\R\S*$)*

Updated RegEx Demo

RegEx分手:

  • ^:开始
  • (\d+):匹配捕获的组#1中的1位数字
  • \h+:匹配1个以上的水平空格
  • ([a-z]+):在捕获的组#2中匹配1个小写字母
  • \h+:匹配1个以上的水平空格
  • (\d+):匹配已捕获的组#3中的1位数
  • (?:\R\S*$)*:匹配零个或多个垃圾字符,表示单独行中的非空白字符