ruby - 使用正则表达式从未格式化的字符串中提取某种单词
问题描述
给定的字符串位于 .txt 文件中,其中还有其他类似的这种格式但不同的行。
line = "39km,Sedan,Manual,4738B,AWD,Used,5.5L/100km,Toyota,prius,SE,{AC, Heated Seats, Heated Mirrors, Keyless Entry},2010"
- 类型:{轿车、轿跑车、掀背车、车站、SUV}
- 传输:{自动,手动,steptronic}
- stock:不以“km”结尾的字母和数字的组合 Drivetrain {FWD,RWD,AWD}
- 状态:{二手,新}
- 燃油经济性类似于:5.5L/100km
- 格式汽车制造商:{本田,丰田,梅赛德斯,宝马,雷克萨斯}
- 型号:与此表中的任何其他条件都不匹配的任何文本
- 年份:任何年份
- Trim:任意两个字母的缩写
- set_of_features:大括号内的任何特征集
我的解决方案:
model = /[^ #{carmaker}.to_s#{drivetrain}.to_s#{stock}.to_s#{year}.to_s#{trim}.to_s#{setOffeatures}.to_s#{fueleconomy}.to_s#{type}.to_s#{transmission}.to_s#{km}.to_s]/.match(line)
puts model returns
u
x
w
我需要为模型提取普锐斯,但我需要一个可以匹配任何类型模型的通用模式匹配,即凯美瑞、altima、嘉年华等,具体取决于文件包含的内容。我尝试了很多方法,但没有任何效果。
解决方案
您可以使用以下代码片段执行此操作。
const filterString = (file, string) => {
let result = file.split(',').filter(word => word !== string).join(',')
return result
}
// In your case you would read this in from the file system
// Using Node it would be the fs library, fs.readFileSync(path, utf8)
https://nodejs.org/dist/latest-v10.x/docs/api/fs.html#fs_fs_readfilesync_path_options
let file = `39km,Sedan,Manual,4738B,AWD,Used,5.5L/100km,Toyota,prius,SE,{AC, Heated Seats, Heated Mirrors, Keyless Entry},2010
39km,Sedan,Manual,4738B,AWD,Used,5.5L/100km,Toyota,prius,SE,{AC, Heated Seats, Heated Mirrors, Keyless Entry},2010
39km,Sedan,Manual,4738B,AWD,Used,5.5L/100km,Toyota,prius,SE,{AC, Heated Seats, Heated Mirrors, Keyless Entry},2010
39km,Sedan,Manual,4738B,AWD,Used,5.5L/100km,Toyota,prius,SE,{AC, Heated Seats, Heated Mirrors, Keyless Entry},2010
39km,Sedan,Manual,4738B,AWD,Used,5.5L/100km,Toyota,prius,SE,{AC, Heated Seats, Heated Mirrors, Keyless Entry},2010
39km,Sedan,Manual,4738B,AWD,Used,5.5L/100km,Toyota,prius,SE,{AC, Heated Seats, Heated Mirrors, Keyless Entry},2010
39km,Sedan,Manual,4738B,AWD,Used,5.5L/100km,Toyota,prius,SE,{AC, Heated Seats, Heated Mirrors, Keyless Entry},2010
39km,Sedan,Manual,4738B,AWD,Used,5.5L/100km,Toyota,prius,SE,{AC, Heated Seats, Heated Mirrors, Keyless Entry},2010
39km,Sedan,Manual,4738B,AWD,Used,5.5L/100km,Toyota,prius,SE,{AC, Heated Seats, Heated Mirrors, Keyless Entry},2010
`
let result = filterString(file, 'prius')
console.log(file, result)
推荐阅读
- assembly - 如何检查输入是否为int?
- agens-graph - 如何在 AgensGraph 上更快地获取标签的最大位置 ID?
- python - Python Timer 是否可以通过检查它是否存在来取消?
- reactjs - 我们如何使用 TSX 为反应元素指定类型
- c++ - 我可以有一个不同于 linux 环境中的本地 C++ 编译器吗?
- java - 正则表达式检索任何字母数字 otp 代码
- git - 如何检测 git (github) 中的提交更改
- css - 如何在移动媒体查询中移动我的登录表单
- twilio - 如何在没有 SendGrid 的情况下在 Twilio Functions 中发送电子邮件?
- flash - 如何跟踪 3d 模型所有部分的“名称”