r语言 - 解析字符串数据帧中符号后的 N 个字母



我有一个字符串的数据帧,我想删除$符号后面的所有字母。我只想要字母,直到有空格、/以外的特殊字符或数字

strings <- data.frame("strings"=c("String test $ABCD","$BGI test",  
"super weird $nabc test","$500 giveway","another $Abc/a test"))

我已经能够使用grepl("^\$",strings)找出所有以$开头的字符串,但是例如,我缺少$位于字符串中间的字符串。另外,想要删除任何$0:9字符串

输出目标是:

ABCD
BGI
nabc
Abc/a

因此,试图找到一种方法来使用 grepl 或类似的东西来找到$并保持所有characters,直到有spacenumberspecial character以外的/

如果/是最不重要的,但如果能找到一种方法来整合所有内容,那就太好了!谢谢。

gsub(".*\$([a-zA-Z][a-zA-Z\/]*).*", "\1", 
    strings$strings[grepl("\$[a-zA-Z]", strings$strings)], perl=TRUE)
[1] "ABCD"  "BGI"   "nabc"  "Abc/a"

更新:OP要求不包括/和字符之后。 这可以通过以下方式实现:

gsub(".*\$([a-zA-Z][a-zA-Z]*).*", "\1", 
       strings$strings[grepl("\$[a-zA-Z]", strings$strings)], perl=TRUE)
[1] "ABCD" "BGI"  "nabc" "Abc" 

最新更新