2013-02-06 21 views
6

1つのgsubを使用して複数のスペースと末尾のスペースを削除するにはどうすればよいですか?私はすでにこの機能をtrim <- function(x) gsub(' {2,}',' ',gsub('^ *| *$','',x))にしましたが、私はそれを1つのgsubで書き直そうとしています。gsubを使用して複数のスペースと末尾のスペースを削除する

実際には、gsubの前後のものに基づいて何かをマッチさせる方法が必要です。この例では、私は、単一のスペースが付け加えているすべてのスペースと一致する必要がある、と

+1

単一のスペースの前にあるすべてのスペースにマッチすることについての最後のステートメントを言い換えると明確にすることはできますか?複数のスペースを1つのスペースに減らしたいと思っていますか? – Dinre

+0

@Dinre、はい、私はすべての複数のスペースを1つに減らしたいと思います。ご覧のように、最初のgsub()( '外側'のもの)はこれを完全に行いますが、私は1つのgsub()だけを使いたいので、別のスペースの前にあるスペースをすべて削除する方法を尋ねました。末尾のスペースを削除するために使用された同じgsub() – Rcoster

答えて

13

「」によってそれらを置き換える現在のスペースはスペースが先行するかどうかを確認するために正の後読みを使用します。

^ *|(?<=) | *$ 

実際にここでそれを見てください:http://regex101.com/r/bJ1mU0

+1

+1! Rで、このような正規表現で 'perl = T'を行う必要があることに注意してください。 – agstudy

+0

ジョセフとagstudyありがとう! – Rcoster

+8

私の答えは拒否されました。完全な機能は次のとおりです。 'trim < - function(x)return(gsub("^* |(?<=)| * $ "、" "、x、perl = T)) ' –

関連する問題