R:如何将字符串拆分成多个部分

R: How to split string into pieces

我正在尝试拆分大量字符串,如下所示:

x = "�[=10=]1�[=10=]1�[=10=]1�[=10=]1�[=10=]1[=10=]2CN�[=10=]1\bShandong�[=10=]1[=10=]4Zibo�[=10=]2$ABCDEFGHIJK�[=10=]2\aIMG_HAS�[=10=]2�[=10=]2�[=10=]2�[=10=]2�[=10=]2�[=10=]2�[=10=]2�[=10=]2413165537405763268743�[=10=]2[=10=]1�[=10=]2�[=10=]2�[=10=]2�[=10=]3�[=10=]3�[=10=]3����[=10=]5�[=10=]3�[=10=]3�[=10=]3�[=10=]3"

分成四块

'CN', 'Shandong', 'Zibo', 'ABCDEFGHIJK'

我试过了

stringr::str_split(x, '\00.')

输出原点x。 另外,

trimws(gsub("�\00?", "", x, perl = T))

仅删除未知字符

有人可以帮我解决这个问题吗?感谢您这样做。

你可以试试 str_extract_all :

stringr::str_extract_all(x, '[A-Za-z_]+')[[1]]
[1] "CN"          "Shandong"    "Zibo"        "ABCDEFGHIJK" "IMG_HAS"

以 R 为基数:

regmatches(x, gregexpr('[A-Za-z_]+', x))[[1]]

这里我们提取所有带有大写、小写或下划线的单词。其他所有内容都将被忽略,因此像 �\00? 这样的字符不会出现在最终输出中。

我们可以使用 strsplit 来自 base R

setdiff(strsplit(x, "[^A-Za-z]+")[[1]], "")
#[1] "CN"          "Shandong"    "Zibo"        "ABCDEFGHIJK" "IMG"         "HAS"