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

标签 regex r

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

例如:“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,但这似乎是作弊。)

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

相关文章:

regex - 如何对powershell中文件中的每一行使用正则表达式

用于跳过指定 URL 扩展的正则表达式

xml - 使用sed从XML文件中删除节点和数据

R绘图显示光标坐标

r - "cumulative"回归向量化

r - 从另一个数据框 r 添加/减去数据框行

java - 带有 Unicode 的正则表达式模式不进行大小写折叠

python - REST API 的 Tornado URL 正则表达式 : how to not define the item ID argument for the POST action?

RStudio Shiny 错误: there is no package called "shinydashboard"

r - 更改 ggpubr::ggarrange 中组合图的背景颜色