我對regexp並不是很有經驗,並且一直在努力將我的所有使用案例與我所做的任何嘗試進行匹配,我想知道是否有人可能會建議可能涵蓋以下場景的匹配。我需要從弦中提取250ml的體積。Regexp援助
- 香草開花250毫升沐浴
- 香草開花250毫升沐浴
- 香草花沐浴250毫升
- 250毫升香草花沐浴
- 香草開花20克皁
- 香草花20克肥皂
謝謝
我對regexp並不是很有經驗,並且一直在努力將我的所有使用案例與我所做的任何嘗試進行匹配,我想知道是否有人可能會建議可能涵蓋以下場景的匹配。我需要從弦中提取250ml的體積。Regexp援助
謝謝
let arr = ['Vanilla Blossom 250ml body wash',
'Vanilla Blossom 250 ml body wash',
'Vanilla Blossom body wash 250ml',
'250ml Vanilla Blossom body wash',
'Vanilla Blossom 20g soap',
'Vanilla Blossom 20 g soap',
'Vanilla Blossom 20 dag soap',
'Vanilla Blossom 20dag soap'
];
let reg = /(?:\d+[ ]{0,1})(?:ml|g)/i;
console.log(arr.map(str => str.match(reg)));
有沒有辦法忽略文本,如果它不是說ml或g? – user1372212
@ user1372212我編輯了我的答案,以便只捕獲ml和g – Oskar
這裏有一個方法來完成這項工作:
var test = [
'Vanilla Blossom 250ml body wash',
'Vanilla Blossom 250 ml body wash',
'Vanilla Blossom body wash 250ml',
'250ml Vanilla Blossom body wash',
'Vanilla Blossom 20g soap',
'Vanilla Blossom 20 g soap',
];
console.log(test.map(function (a) {
return a.match(/\d+\s*ml/)
}));
那你試試這麼遠嗎? –
'20g'和'20 g'怎麼樣? –