美国号码的 tcl 正则表达式



美国号码的正则表达式,如下所示:

^[+-]?(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正则表达式中的退格键。我怀疑你想要mM

% regexp -inline {m[+-]?(d*|d{1,3}(,d{3})*)(.d+)?M} " 120.00 "
120.00 120 {} .00

我不知道你是否也想匹配数字两侧的空格。但是大括号之间的所有内容都是正则表达式的一部分,因此您正在寻找一个空格,后跟可选的加号或减号,后跟数字等。由另一个空格终止。在您编写它时,测试字符串中没有空格。

最新更新