用于匹配比较的正则表达式

时间:2012-03-29 07:01:41

标签: regex search comparison

是否可以创建与比较匹配的正则表达式,例如小于或大于?例如,匹配小于$ 500的所有美元值。

我将使用此方法的一种方法是在网上商店中列出许多产品在一个页面上但不提供按价格排序的方法。我找到了一个针对Chrome的正则表达式扩展程序的搜索页面,并试图找出是否有一种方法可以使用正则表达式匹配页面上的任何字符串,以美元符号开头,后跟任何小于我指定的数字的数字。

3 个答案:

答案 0 :(得分:2)

这应该适合你[{1}}。

<强>解释

\$[1-4]?\d?\d\b

答案 1 :(得分:1)

这可以满足您的需求:^(\$[1-4]?\d?\d)$。这将匹配$1$499之间的任何值。

如上所述,如果您想匹配甚至十进制值,您可以使用类似的内容:^(\$[1-4]?\d?\d(\.\d{2})?)$。话虽这么说,理想情况下,数字验证应该使用实际的数学运算来完成,而不是正则表达式。

答案 2 :(得分:0)

编辑:这过于复杂,但它也会匹配任何严格小于500的值

\$[1-4]\d{2}(\.\d{2})?$|\$\d{1,2}(\.\d{2})?$

如果您还需要匹配$500,请添加另一个|\$500(\.00)?$

匹配:

\$            the dollar symbol
[1-4]         followed by a digit between 1 and 4
\d{2}         followed by exactly 2 digits
(\.\d{2})?    optionally --> ()? followed by a dot --> \. and exactly 2 digits
$             followed by end of line (may be replaced with \b for word boundaries)
|             or
\$\d{1,2}     the dollar symbol followed by any two digits
(\.\d{1,2})?$ again optionally followed by cents, followed by end of line