正则表达式匹配数字范围?

时间:2015-08-10 23:25:05

标签: regex

如何匹配两个数字,每个数字前面都有美元符号,并且在它们之间带有连字符,例如'$ 1,000 - $ 2,000'。我希望能够获得包含美元符号的全部范围。

<$> $ 1,000 - $ 2,000'

其他例子:

'$ 30 - $ 40'

'$ 1- $ 2'

我试过了:([\$0-9, -]*){1}以前有字符时它不起作用。

2 个答案:

答案 0 :(得分:1)

\$1[0-9][0-9][1-9]\s

这对我来说似乎很简单......如果排除1000和2000 ......如果这包括1000和2000那么

\$((1[0-9][0-9][0-9])|(2000))\s

肯定有一种更清洁的方法......但这将完成工作

**********************编辑************************ *

现在你改变了你的问题......我认为一个简单的正则表达式将是

\$[0-9]*\s?\-\s?\$[0-9]*\s?

美元符号后跟任意数量的数字,

可选的空白区域,

破折号,

可选的空白区域,

美元符号后跟任何数字,

可选的空格。

答案 1 :(得分:0)

要匹配$ 1,000 - $ 2,000&#39;,您只需使用$ 1,000 - $ 2,000&#39;作为正则表达式。要使用格式$ x,xxx匹配1000 - 2000范围内的任何内容,请使用正则表达式:

'\$1,\d{3}|\$2,000'

要匹配任何范围,其中1000为下限,2000为上限,格式为$ x,xxx - $ x,xxx,请使用正则表达式:

'\$1,\d{3}|\$2,000 - \$1,\d{3}|\$2,000'
相关问题