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

时间:2014-05-19 07:34:06

标签: regex r

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

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

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

我不明白为什么上面的正则表达式没有用#34替换FC;"

感谢任何帮助。感谢

1 个答案:

答案 0 :(得分:5)

您正在使用\\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但这似乎是作弊。)