我在正则表达式上非常糟糕,并且想知道是否有人可以帮助我。我需要接受允许$,€和£的值,但不需要最小5.00(不需要.00但允许使用.00)和2,000(不需要逗号但允许使用逗号)。
有效输入的一些例子
$5
€5
£5
$5.00
5
1000
1,000
1,000.00
答案 0 :(得分:2)
如果你想允许像£5.32这样的值:
^[$€£]?(\d+([\.,]\d{2})?)$
如果不是:
^[$€£]?(\d+([\.,]00)?)$
使用正则表达式检查其格式是否正确后,您可以继续使用正则表达式的第一个返回组检查5 < int(value) < 2000
。
^[$€£]?((([1-5],?)?\d{2,3}|[5-9])(\.\d{2})?)$
答案 1 :(得分:0)
RegexMagic救援:
\b(?:[$£€])? *(?:2,?000|1,?[0-9]{3}|[1-9][0-9]{1,2}|[5-9])(?:\.[0-9]{1,2})?\b
你是否同意在正则表达式中做这一切(虽然可能)并不是一个非常好的主意?