正则表达式,用于仅提取R中字符串中的字母和数字

use*_*217 2 regex r

嗨,如果字符串中存在,我需要一个提取数字和(数字+字母)的正则表达式.

例如:"4596 2B FC JAIN BHAWAN" - >我想要"4596 2B"作为我的输出

> gsub("\\S([a-zA-Z])+\\S", "", "4596 2B FC JAIN BHAWAN")
[1] "4596 2B FC  "
Run Code Online (Sandbox Code Playgroud)

我不明白为什么上面的正则表达式没有取代FC"

任何帮助表示赞赏.谢谢

Hug*_*ugh 5

你正在使用\\S(大写),意思是"不是空格",使用小写,只使用一次(因为你的字符串的末尾没有以空格终止):

gsub("\\s([a-zA-Z])+", "", "4596 2B FC JAIN BHAWAN")
Run Code Online (Sandbox Code Playgroud)

使用西蒙的建议让我们可以看到树木的树林:

gsub("\\b[a-zA-Z]+\\b", "", "aa 4592 2B FC JAIN BHAWAN")
[1] " 4592 2B"
Run Code Online (Sandbox Code Playgroud)

虽然我可能需要一些帮助来摆脱初始空间.(我可以把嵌套gsubs但是看起来像是作弊.)