R中的正则表达式帮助

时间:2013-01-07 00:28:16

标签: regex r

我的数据看起来像这样,负号是后缀 在数字的末尾。

"general_amount"
"0000000441244"
"0000000127769-"
"0000000043819"
"0000000522600-"

有人可以帮我找到正则表达式,以便在下面生成所需的输出。

"general_amount"
 441244
-127769
 43819
-522600

2 个答案:

答案 0 :(得分:9)

sub('^0*([^-]*)(-?)$', '\\2\\1', x)

## [1] "general_amount" "441244"         "-127769"        "43819"          "-522600"

^0*匹配所有前导0个字符 [^-]*匹配所有非-个字符 -?匹配零个或一个-个字符 最后,$匹配字符串的结尾。

使用()\\1\\2捕获中间的两个部分,然后以相反的顺序打印。

答案 1 :(得分:0)

老兄,我花了3个小时才找到你问题的答案

sed -re 's/[^a-zA-Z0-9]0+([0-9]+)(-?)/\2\1/g' anyfile.txt 

但最后我做到了。可能会有一些短暂的,但我差不多了