正则表达式匹配Tcl中的十六进制数字?

时间:2011-03-31 18:52:36

标签: regex tcl

是否可以编写Tcl正则表达式来验证字符串是否为偶数十六进制数?

2 个答案:

答案 0 :(得分:4)

这个tcl代码将完成工作:

if {[regexp -linestop -nocase {^[\da-f]*[02468ace]$} $input]} {
    # Success
} else {
    # Fail
}

请注意,a,c和e也是偶数,您需要-nocase匹配a-f和A-F.

答案 1 :(得分:4)

它需要是一个正则表达式吗?

proc is_even {n} {expr {($n & 1) == 0}}

if {[is_even 0xdeadbeef]} {puts even} else {puts odd}