这是我一直在使用的东西。
\$?[0-9]+\.*[0-9]*
但是在进行一些测试时,我注意到像这样的事情:
$$$34.00
如果用户输入超过一个美元符号,我不想让它甚至通过正则表达式,尽管 matcher.group()
返回匹配的子字符串,但会返回一个匹配项。因此我尝试了以下方法:
\${1}[0-9]+\.*[0-9]*
但是这似乎与我最初输入的正则表达式行为相同。现在我正在Java中进行测试,但我计划使用Boost库在C ++中使用它。但是请不要在这里给我那个解决方案,因为我想学习而不是让别人给我答案。
但是我确实需要帮助,使用户只能输入一个美元符号(这就是我认为\${1}
会做的事情)
.find()
吗? - fgematcher.find()
。 - rage