文字列内のスペースの後のすべてを削除する 質問する

文字列内のスペースの後のすべてを削除する 質問する

文字列内のスペースの後のすべてを削除したいと思います。

例えば:

"my string is sad"

戻るべき

"my"

私はsub/gsubを使用してこれを実行する方法を見つけようとしましたが、これまでのところ成功していません。

ベストアンサー1

次のような正規表現を使うことができます

sub(" .*", "", x)

を参照してください正規表現デモ

ここでは、sub単一の検索と置換操作のみを実行し、 .*パターンは最初のスペースを検索し (正規表現エンジンは文字列を左から右に検索するため)、.*文字列の末尾まで、可能な限り多くの 0 個以上の文字 (TRE 正規表現フレーバーでは、改行文字も含まれますが、 を使用する場合perl=TRUEはそうではないことに注意してください) と一致します。

いくつかのバリエーション:

sub("[[:space:]].*", "", x) # \s or [[:space:]] will match more whitespace chars
sub("(*UCP)(?s)\\s.*", "", x, perl=TRUE) # PCRE Unicode-aware regex
stringr::str_replace(x, "(?s) .*", "")   # (?s) will force . to match any chars

を参照してくださいオンライン R デモ

おすすめ記事