美国数字的tcl regexp

时间:2017-03-17 11:34:11

标签: regex tcl

建议的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”?

1 个答案:

答案 0 :(得分:0)

\btcl regular expressions中的退格。我怀疑你想要\m\M

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

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