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

例如:“ 4596 2B FC JAIN BHAWAN”->我希望将“ 4596 2B”作为我的输出

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


我不明白为什么上述正则表达式没有用“”代替FC

任何帮助表示赞赏。谢谢

最佳答案

您使用的是\\S(大写),表示“不是空格”,使用小写字母,并且只能使用一次(因为字符串的结尾不以空格结尾):

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


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

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


尽管我可能需要一些帮助来摆脱最初的空间。 (我可以放嵌套的gsub,但这似乎是作弊的。)

关于regex - 正则表达式用于仅提取R中字符串中的字母和数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23732124/

10-11 00:38