【发布时间】:2021-01-21 17:02:23
【问题描述】:
我正在尝试用正则表达式匹配以下可能性:
MORE THAN CAD 10,000
MORE THAN CAD 10,000 BUT LESS THAN CAD 15,000
LESS THAN CAD 10,000
我的正则表达式适用于/^(((MORE|LESS) THAN CAD [\d,]+)|(MORE THAN CAD [\d,]+ BUT LESS THAN CAD [\d,]+))$/,但我想知道是否有更优雅的方式。
我已经尝试过/^(MORE THAN CAD [\d,]+)?(( BUT )?LESS THAN CAD [\d,]+)?$/,但它也让以下内容通过:
MORE THAN CAD 10,000LESS THAN CAD 15,000
【问题讨论】:
-
喜欢
^(?:MORE|LESS) THAN CAD \d[\d,]*(?: BUT LESS THAN CAD \d[\d,]*)?$?使用可选组? -
@WiktorStribiżew 但这将允许
LESS THAN CAD 10,000 BUT LESS THAN CAD 10,000通过。 -
编程语言是什么?如果支持条件,你可以使用
^(?:(MORE)|LESS) THAN CAD [\d,]+(?(1)(?: BUT LESS THAN CAD [\d,]+)?)$ -
下巴,是PHP中的PCRE吗?
-
是的,它是 PHP 中的 PCRE @WiktorStribiżew