8

文字と数字が混在する文字列があります。

"The sample is 22mg"

次のように、数字の直後に文字が続く文字列を分割したいと思います。

"The sample is 22 mg"

私はこれを試しました:

gsub('[0-9]+[[aA-zZ]]', '[0-9]+ [[aA-zZ]]', 'This is a test 22mg')

しかし、望ましい結果が得られていません。

助言がありますか?

4

2 に答える 2

15

正規表現ではキャプチャ括弧を使用し、置換ではグループ参照を使用する必要があります。例えば:

gsub('([0-9])([[:alpha:]])', '\\1 \\2', 'This is a test 22mg')

ここにはR固有のものはありません。regexRは、ある程度役立つgsubはずです。

于 2012-07-23T01:59:55.367 に答える
12

逆参照が必要です:

test <- "The sample is 22mg"
> gsub("([0-9])([a-zA-Z])","\\1 \\2",test)
[1] "The sample is 22 mg"

括弧内はすべて記憶されます。次に、\ 1(括弧内の最初のエンティティの場合)、\ 2などによってアクセスされます。最初の円記号は、Rでの円記号の解釈をエスケープして、正規表現パーサーに渡されます。

于 2012-07-23T01:59:00.763 に答える