作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
这是我的代码
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
如您所见,它匹配了子字符串。
如何让它只匹配单词而不匹配子字符串?
最佳答案
正则表达式中的 |
运算符采用尽可能广泛的范围。您的原始正则表达式匹配 \ba
或 an
或 all\b
。
将整个正则表达式更改为:
/\b(?:#{stopwordlist})\b/
或将 stopwordlist
更改为正则表达式而不是字符串。
stopwordlist = /a|an|all/
更好的是,您可能想要使用 Regexp.union
。
关于ruby - 如何在 Ruby 中匹配完整的单词而不是子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25925658/
我是一名优秀的程序员,十分优秀!