加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – R正则表达式(靠近单词)

发布时间:2020-12-14 05:49:48 所属栏目:百科 来源:网络整理
导读:我想知道如何使用正则表达式选择彼此附近的单词. 例如,我想从以下短语中选择数字和单词里程: "140,000 mostly freeway miles" "173k commuter miles. " "154K(all highway) miles 我不知道如何填写中间的可选单词: [0-9]+ ???? miles * near可以定义为1-3
我想知道如何使用正则表达式选择彼此附近的单词.
例如,我想从以下短语中选择数字和单词里程:

"140,000 mostly freeway miles" 
"173k commuter miles. "       
"154K(all highway) miles

我不知道如何填写中间的可选单词:

[0-9]+ ???? miles

* near可以定义为1-3个单词.感谢您指出了这一点.

解决方法

这是R中的答案.其他答案可以进行一些修改.大多数情况下,他们需要“双重逃脱”,你必须使用配对函数regexpr和regmatches.

x=c("140,000 mostly freeway miles","173k commuter miles. ","154K(all highway) miles")


gsub('([[:digit:][:punct:]k]+).*(miles).*','1 2',x,ignore.case=TRUE)

# [1] "140,000 miles" "173k miles"    "154 miles"

这表示组编号标点符号或组1中的k.请按照此操作进行操作.然后是第2组,即单词miles,后跟其他任何内容.

您还可以使用“普通”正则表达式语法:

gsub('([0-9,k]+).*(miles).*',ignore.case=TRUE)

但是,我会首先清理数据然后做一些更简单的匹配! (例如,取消并删除标点符号).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读