我有一个字符串的数据帧,我想删除$
符号后面的所有字母。我只想要字母,直到有空格、/
以外的特殊字符或数字
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
,直到有space
、number
或special 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"