2

R の正規表現 (いくつかのチュートリアルで動作) についてもっと理解しようとしていますが、うまくいかないものに遭遇しました。私は2文字(それらの文字を含めてそれらを置き換えて)の間のもののスパンをつかもうとしています. 誰かがこれらの正規表現から望ましい動作を得るのを手伝ってくれますか?

d <- c("xtfo_oin5h;lx", "6b_arin;7", "xin;7")
gsub("t.+?l", "HERE", b)
gsub("_.+?\\;", "HERE", b)

Desired outcomes for these two statements:
[1] "xHEREx"    "6b_arin;7" "xin;7"
[1] "xtfoHERElx" "6bHERE7"     "xin;7"
4

2 に答える 2

4

これは、転置の小さな問題にすぎないようです。この場合、 abを aと間違えていdます。;-)

gsub("t.+?l", "HERE", d)
gsub("_.+?\\;", "HERE", d)

期待どおりに動作します!

> gsub("t.+?l", "HERE", d)
[1] "xHEREx"    "6b_arin;7" "xin;7"    
> gsub("_.+?\\;", "HERE", d)
[1] "xtfoHERElx" "6bHERE7"    "xin;7" 
于 2012-08-02T13:01:14.063 に答える
0

多分

gsub("(.*)t.+?l(.*)", "\\1HERE\\2", d)

gsub("(.*)_.+?\\;(.*)", "\\1HERE\\2", d)

しかし、質問からは少し不明です

于 2012-08-02T12:55:06.183 に答える