gpt4 book ai didi

ruby - 如何在 Ruby 中匹配完整的单词而不是子字符串

转载 作者:数据小太阳 更新时间:2023-10-29 08:27:05 25 4
gpt4 key购买 nike

这是我的代码

stopwordlist = "a|an|all"
File.open('0_9.txt').each do |line|
line.downcase!
line.gsub!( /\b#{stopwordlist}\b/,'')
File.open('0_9_2.txt', 'w') { |f| f.write(line) }
end

我想删除单词 - a,an 和 all但是,它也匹配子串并删除它们

例如输入 -

Bromwell High is a cartoon comedy. It ran at the same time as some other programs about school life

我得到输出 -

bromwell high is  cartoon comedy. it r t the same time s some other programs bout school life

如您所见,它匹配了子字符串。

如何让它只匹配单词而不匹配子字符串?

最佳答案

正则表达式中的 | 运算符采用尽可能广泛的范围。您的原始正则表达式匹配 \baanall\b

将整个正则表达式更改为:

/\b(?:#{stopwordlist})\b/

或将 stopwordlist 更改为正则表达式而不是字符串。

stopwordlist = /a|an|all/

更好的是,您可能想要使用 Regexp.union

关于ruby - 如何在 Ruby 中匹配完整的单词而不是子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25925658/

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