r - 我想在 R 中编写一个正则表达式来删除包含数字的字符串的所有单词
问题描述
例如:
x<-"Saint A/74/PV.46 12/12/2019 4/66 19-40538 Lucia"
应该给我“圣卢西亚”。
我试过
trimws(gsub("\\w*[0-9]+\\w*\\s*", "", x))
这给了我
Saint A//PV.///-Lucia
任何帮助将不胜感激。
解决方案
我们可以gsub
用来匹配字母、数字,从单词边界 ( \\b
) 到下一个,并替换为空白 ( ""
)
gsub("\\s{2,}", " ", gsub("\\b[A-Z/0-9.-]+\\b", "", x))
#[1] "Saint Lucia"
或使用str_extract
library(stringr)
str_c(str_extract_all(x, "(?<= |^)[[:alpha:]]+(?= |$)")[[1]], collapse = " ")
#[1] "Saint Lucia"
推荐阅读
- swift - 如何将 POST 值发送到 API?[迅速]
- go - GO 获取 K8S api 服务器健康状态
- python - 将 python 函数转换为 pyspark lambda 函数
- arrays - 如何将所有素数放入C中的数组中
- tensorflow - 如何在 tf.keras 中修复这个 AssertionError?
- node.js - 使用 pm2 启动应用程序时如何清除错误?
- python-3.x - AttributeError:“字节”对象在 Python 3.6 中没有属性“编码”
- python - 给定用户名的值错误必须在 django python 项目上设置
- python - 带有单选按钮的选择字段未出现在管理面板上
- arrays - 两个变量之间相关系数的 VBA 公式,其中一个变量是其他两个变量的和积