次の文字列を見てみましょう。
x <- " hello world"
最初の単語を抽出したいと思います。^\\W*([a-zA-Z]+).*
そのために、最初のグループへの後方参照を含む次の正規表現を使用しています。
> gsub("^\\W*([a-zA-Z]+).*", "\\1", x)
[1] "hello"
期待どおりに動作します。
それでは、文字列に数字とアンダースコアを追加しましょう。
x <- " 0_hello world"
新しい文字に一致するよう\\W
に置き換えます。[\\W_0-9]
> gsub("^[\\W_0-9]*([a-zA-Z]+).*", "\\1", x)
[1] " 0_hello world"
今はうまくいかず、その理由がわかりません。\\W
中に入れるときに問題が発生するようですが、[]
理由はわかりません。ただし、正規表現は、PCRE を使用したオンライン正規表現テスターで動作します。
私は何を間違っていますか?