Можно ли написать регулярное выражение Tcl, чтобы проверить, является ли строка шестнадцатеричным числом, которое является четным?
Требуется ли регулярное выражение?
proc is_even {n} {expr {($n & 1) == 0}} if {[is_even 0xdeadbeef]} {puts even} else {puts odd}
Этот код tcl сделает работу:
if {[regexp -linestop -nocase {^[\da-f]*[02468ace]$} $input]} { # Success } else { # Fail }
Обратите внимание, что a, c и e также являются четными числами, и вам нужен -nocase, чтобы соответствовать a-f и A-F.