で2つの大文字の間に空白を交換し、私はこのように見える文字列の文字があります。私は何をしたいかアンダースコア
" A E 222;CMPSC 201 orCMPSC 202"
は作りです、それはこのようになりますように、次のとおりです。
" A_E_222;CMPSC_201 orCMPSC_202"
これまでのところ、次のコードを試しましたが、アンダースコアを前または後ろに置くだけで、他に何を試すか分かりません。
str_replace_all(x, "([A-Z][:blank:][A-Z])", "\\1_")
str_replace_all(x, "([A-Z][:blank:][:digit:])", "([A-Z][:digit:])")
と交換します ' (yada)[:blank:](yada) '\\ 1 _ \\ 2'に置き換えられましたか? – Frank
\\ 2は範囲外だと言いました – Kayla
私は以下のようにakrunの方法が最善であると思いますが(lookaheadとlookbehindを使って)、コードへの直接的な修正は 'gsub("([A-Z0-9]) "[:blank:]]([A-Z0-9])"、 "\\ 1 _ \\ 2"、x) ' – Frank