簡體   English   中英

R中的正則表達式幫助

[英]regular expression help in R

我有看起來像這樣的數據,其中負號是數字末尾的后綴。

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

有人可以幫我找到一個正則表達式,以在下面產生所需的輸出。

"general_amount"
 441244
-127769
 43819
-522600
sub('^0*([^-]*)(-?)$', '\\2\\1', x)

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

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

中間的兩個片斷被()捕獲為\\\\1\\\\2 ,並以相反的順序打印。

使用gsub ,還有另一個想法。

想法是將輸入分為3個元素

  1. 0系列:(^ 0+)
  2. 系列數字:([0-9] +)
  3. 找到“-” 1或零次:(-?)”

      as.numeric(gsub("(^0+)([0-9]+)(-?)","\\\\3\\\\2",tt)) [1] 441244 -127769 43819 -522600 

老兄,我花了3個小時才找到問題的答案

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

但是最后我做到了。 可能會有一些短暫的機會,但我快到了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM