建议的here美国号码的正则表达式:
^[+-]?(\d*|\d{1,3}(,\d{3})*)(\.\d+)?\b$
完美无缺。我尝试了几个使用此服务https://regex101.com/
的示例但是,使用tcl的正则表达式如下:
regexp { ^[+-]?(\d*|\d{1,3}(,\d{3})*)(\.\d+)?\b$ } 120.00
返回'0'。
我是否已到达tcl“Quoting Hell”?
答案 0 :(得分:0)
\b
是tcl regular expressions中的退格。我怀疑你想要\m
和\M
% regexp -inline {\m[+-]?(\d*|\d{1,3}(,\d{3})*)(\.\d+)?\M} " 120.00 "
120.00 120 {} .00
我不知道您是否打算匹配号码两侧的空格。但是大括号之间的所有内容都是正则表达式的一部分,因此您要查找一个空格,后跟可选的加号或减号后跟数字等。由另一个空格终止。在您编写时,测试字符串中没有空格。