簡體   English   中英

在R中,如何使用正則表達式分割字符串?

[英]In R, How to use regular expression to split string?

假設我有一個文本格式如下(四個空格是一個制表符):

__spiritual_bouquet_1    _type_of    __sympathy_card_1

我想通過選項卡將其拆分為:

__spiritual_bouquet_1_type_of__sympathy_card_1

我不知道如何使用正則表達式來拆分它。

用這個:

strsplit(subject, "\\s", perl=TRUE);

說明

\\s匹配一個空格字符,表示空格,制表符和回車符。 我沒有使用制表符\\t因為在示例字符串中我只發現了一個常規空格字符。

選項2:擺脫多余的下划線

我注意到您的某些標記在定界符附近有雙下划線。 如果要刪除多余的下划線,可以使用此正則表達式: \\s(?:_(?=_))?

在R中: strsplit(subject, "\\\\s(?:_(?=_))?", perl=TRUE);

演示中 ,您可以看到我們如何只匹配下划線加倍的下划線。 我們在此分隔符上進行拆分。

這是如何工作的:

  • \\\\s匹配空白字符
  • (?:_(?=_))? 是一個非捕獲組,由?可選? 最后,該字符與下划線匹配,但前提是前瞻(?=_)可以斷言以下字符為下划線

參考

要么

temp <- "__spiritual_bouquet_1    _type_of    __sympathy_card_1"
strsplit(temp, " ")[[1]]

這將為您帶來一些額外的空結果。 因此,您可以做

strsplit(temp, " ")[[1]][strsplit(temp, " ")[[1]] != ""]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM