【发布时间】:2018-04-12 08:34:32
【问题描述】:
如果它出现在 ex 之后,我不想提取值。
高达 12 GB ->
12GB -> 12GB
正则表达式 -> (?i)(?<!up\s{1}to\s{1})([0-9]{1,})\s*(GB|MB|KB)
输入 -> up to 12 gb output -> 2 gb(非预期)
up to 1 gb output -> (expected)
我不知道它是如何为第一个输入获得 2 GB 的
【问题讨论】:
-
(OT:
{1}完全是多余的,+与{1,}相同,但更常用且更易于阅读。) -
您可以使用:
(?i)(?<!up\sto\s)\b\d+\s*[GMK]B -
使用
(?i)\b(?<!\bup\sto\s)\d+\s*[GMK]B -
@AdrienBrunelat 这对我来说似乎很清楚。 Malav 对为什么他们给出的正则表达式匹配
2而不是来自up to 12 gb的12感到困惑。 -
坦率地说,我也很困惑。我本来希望第一个捕获组也匹配
12。
标签: java regex regex-negation regex-lookarounds