【发布时间】:2023-03-04 19:08:02
【问题描述】:
我有以下字符串,想匹配不在括号“()”中的字符串。
我已经尝试了以下,但它与括号匹配,我想要它的逆。
var str = '45.6 fl oz (456 g)';
console.log(str.match(/[\(]+[^\)]*\)/g));
谁能帮帮我?我想关注输出:-
45.6 fl oz
(456 g)
【问题讨论】:
-
在character set (
[...]) 内,括号没有任何特殊含义,无需转义。[\(]与[(]相同,与\(相同(字符集外的括号需要转义)。 -
看来你需要进一步的帮助来解析这个字符串。请发表评论而不是问另一个问题。看,
4.5 fl oz可以拆分为数字/非数字,就像我在回答中建议的那样:str.split(/\s*(\d*\.?\d+)\s*/).filter(Boolean)。但是如果你也需要fl,可能你需要指定一个非捕获组内的所有选项,比如str.split(/\s*(\d*\.?\d+\s*(?:fl oz|[kmd]?g|l))\s*/).filter(Boolean)...
标签: javascript regex match