gpt4 book ai didi

regex - R 正则表达式(近词)

转载 作者:行者123 更新时间:2023-12-01 01:13:36 25 4
gpt4 key购买 nike

我想知道如何使用正则表达式选择彼此靠近的单词。
例如,我想从以下短语中选择数字和单词英里:

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

中间的可选词不知道怎么填:
[0-9]+ ???? miles

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

最佳答案

这是 R 中的答案.其他答案可以进行一些修改。大多数情况下,它们需要“双重转义”,您必须使用配对函数 regexprregmatches .

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 组,即“英里”一词,然后是其他任何内容。

您还可以使用“普通”正则表达式语法:
gsub('([0-9,k]+).*(miles).*', 
'\\1 \\2',
x,
ignore.case=TRUE)

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

关于regex - R 正则表达式(近词),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13500463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com