Regex 正则表达式是否匹配Tcl中的偶数十六进制数?
是否需要编写一个Tcl正则表达式来验证字符串是否是偶数的十六进制数?此Tcl代码将完成以下工作:Regex 正则表达式是否匹配Tcl中的偶数十六进制数?,regex,tcl,Regex,Tcl,是否需要编写一个Tcl正则表达式来验证字符串是否是偶数的十六进制数?此Tcl代码将完成以下工作: if {[regexp -linestop -nocase {^[\da-f]*[02468ace]$} $input]} { # Success } else { # Fail } 请注意,a、c和e也是偶数,您需要-nocase来匹配a-f和a-f。它需要是正则表达式吗 proc is_even {n} {expr {($n & 1) == 0}} if {[is_e
if {[regexp -linestop -nocase {^[\da-f]*[02468ace]$} $input]} {
# Success
} else {
# Fail
}
请注意,a、c和e也是偶数,您需要-nocase来匹配a-f和a-f。它需要是正则表达式吗
proc is_even {n} {expr {($n & 1) == 0}}
if {[is_even 0xdeadbeef]} {puts even} else {puts odd}
十六进制数很容易。检查均匀度仍然是可能的(实际上,仍然很容易),因为最后一位数字决定了这一点-但一般来说,你应该阅读并注意它的智慧。我在if条件周围添加了括号以延迟评估。你可能不需要
-linestop
;默认的“匹配整个字符串”行为适用于此类任务。