正则表达式 – 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) 但是,我会首先清理数据然后做一些更简单的匹配! (例如,取消并删除标点符号). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |