美国号码的正则表达式,如下所示:
^[+-]?(d*|d{1,3}(,d{3})*)(.d+)?b$
工作得很好。我尝试了使用此服务的几个示例 https://regex101.com/
但是,使用 tcl 的正则表达式如下:
regexp { ^[+-]?(d*|d{1,3}(,d{3})*)(.d+)?b$ } 120.00
返回"0"。
我到过"引用地狱"了吗?
b
是TCL正则表达式中的退格键。我怀疑你想要m
和M
% regexp -inline {m[+-]?(d*|d{1,3}(,d{3})*)(.d+)?M} " 120.00 "
120.00 120 {} .00
我不知道你是否也想匹配数字两侧的空格。但是大括号之间的所有内容都是正则表达式的一部分,因此您正在寻找一个空格,后跟可选的加号或减号,后跟数字等。由另一个空格终止。在您编写它时,测试字符串中没有空格。