输入:
"2012 Dodge Challenger SRT8, Supercharged, Amber White $40,000"
"2013 Audi s7, Prestige Package, Grey $79,000"
"2014 Porsche 911, Black $113,000"
"2015 Range Rover Sport, Navy Blue $84,000"
预期产出:
Amber White
Grey
Black
Navy Blue
我想使用regex和outwit hub来抓取这些信息
我在outwit之前和之后使用mark(,
)成功地删除了大部分内容,但是我遇到麻烦的是一些列表有2个字的颜色而有些列表有一个。 " Amber White, Grey, Black Mist...
&#34 ;.
此外,我无法在之前或之后使用该标记,因为这些单词位于独特的短语之内
任何人都可以帮我解决如何使用正则表达式准确提取颜色信息。
答案 0 :(得分:1)
这里你走了,这是一个使用正面观察和积极展望的优雅解决方案
<强>正则表达式强>
(?<=,\s)([\w\s]+)(?=\s\$)
测试字符串
"2012 Dodge Challenger SRT8, Supercharged, Amber White $40,000"
"2013 Audi s7, Prestige Package, Grey $79,000"
"2014 Porsche 911, Black $113,000"
"2015 Range Rover Sport, Navy Blue $84,000"
<强>结果强>
MATCH 1
Amber White
MATCH 2
Grey
MATCH 3
Black
MATCH 4
Navy Blue
答案 1 :(得分:0)
我认为这应该适合你:
(?<=,\s)(\w+|\w+\s+\w+)(?=\s+(?:\$|\d|Size))
测试here
注意:这假设价格总是在它之前有一个美元符号,并且颜色在价格之前直接始终
"2012 Dodge Challenger SRT8, Supercharged, Amber White $40,000"
"2013 Audi s7, Prestige Package, Grey $79,000"
"2014 Porsche 911, Black $113,000"
"2015 Range Rover Sport, Navy Blue $84,000"
"Amazon Fire Phone, Black 32GB (AT&T)"
"LG G3, Fire Red 16GB (Tmobile)
Diesel Jeans, Safado Straight, Midnight Black Size 36/34
MATCH 1
1. [43-54] `Amber White`
MATCH 2
1. [98-102] `Grey`
MATCH 3
1. [132-137] `Black`
MATCH 4
1. [174-183] `Navy Blue`
MATCH 5
1. [213-218] `Black`
MATCH 6
1. [241-249] `Fire Red`
MATCH 7
1. [296-310] `Midnight Black`
(?<=,\s)
:断言COLOR之前有一个,<space>
(\w+|\w+\s+\w+)
:查找并捕获构成COLOR的字母
(?=\s+(?:\$|\d|Size))
:断言后面跟着一个$
或一个数字或字符Size
到COLOR右边