给出以下输入
1 foo 745
2 baz 746
unneeded characters
我希望输出如下
1;foo;745
2;baz;746
我使用正则表达式来获得所需的输出。但是,我无法摆脱垃圾字符。
正则表达式:/(\d)\s([a-z]+)\s(\d+)\s+|[\S\s]+$/x
答案 0 :(得分:0)
您可以使用正则表达式进行匹配:
^(\d+)\h+([a-z]+)\h+(\d+)(?:\R\S*$)*
RegEx分手:
^
:开始(\d+)
:匹配捕获的组#1中的1位数字\h+
:匹配1个以上的水平空格([a-z]+)
:在捕获的组#2中匹配1个小写字母\h+
:匹配1个以上的水平空格(\d+)
:匹配已捕获的组#3中的1位数(?:\R\S*$)*
:匹配零个或多个垃圾字符,表示单独行中的非空白字符