Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式是否匹配Tcl中的偶数十六进制数?_Regex_Tcl - Fatal编程技术网

Regex 正则表达式是否匹配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

是否需要编写一个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_even 0xdeadbeef]} {puts even} else {puts odd}

十六进制数很容易。检查均匀度仍然是可能的(实际上,仍然很容易),因为最后一位数字决定了这一点-但一般来说,你应该阅读并注意它的智慧。我在if条件周围添加了括号以延迟评估。你可能不需要
-linestop
;默认的“匹配整个字符串”行为适用于此类任务。