我正在尝试拆分包含两个条目的字符串,每个条目都有特定的格式:
- 类别(例如
active site
/region
)后跟:
- 术语(例如
His、Glu
/nucleotide-binding motif A
)后跟,
这是我要拆分的字符串:
string <- "active site: His, Glu,region: nucleotide-binding motif A,"
到目前为止,这是我尝试过的。除了两个空子字符串外,它会产生所需的输出。
unlist(str_extract_all(string, ".*?(?=,(?:\\w+|$))"))
[1] "active site: His, Glu" "" "region: nucleotide-binding motif A"
[4] ""
如何去掉空子串?
最佳答案
你得到空字符串是因为 .*?
也可以匹配空字符串,其中断言 (?=,(?:\\w+|$))
是是的
您可以在匹配 :
[^:,\n]+:.*?(?=,(?:\w|$))
解释
[^:,\n]+
匹配除:
,
或换行符以外的 1+ 个字符:
匹配冒号.*?
尽可能匹配任何字符(?=
正面前瞻,断言当前位置的右边是什么:,
字面匹配(?:\w|$)
匹配单个单词字符,或断言字符串结尾
)
关闭前瞻
string <- "active site: His, Glu,region: nucleotide-binding motif A,"
unlist(str_extract_all(string, "[^:,\\n]+:.*?(?=,(?:\\w|$))"))
输出
[1] "active site: His, Glu" "region: nucleotide-binding motif A"
关于r - 在 R 中拆分逗号和分号分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71979105/