这是我一直在使用的
\$?[0-9]+\.*[0-9]*
但是当我做一些测试时,我注意到像
$$$34.00
将作为匹配返回(但matcher.group()
)只返回匹配的子字符串。如果用户输入超过一个美元符号,我什至不希望它通过正则表达式,所以我尝试了这个:
\${1}[0-9]+\.*[0-9]*
但这似乎与我第一次输入的正则表达式的行为相同。现在我正在 java 中测试它,但我计划使用 Boost 库在 c++ 中使用它。但是请不要在这里给我那个解决方案,因为我正在尝试在没有人给我答案的情况下学习。
但我确实需要帮助,所以用户只能输入一个美元符号(这是我认为\${1}
会做的)