Regex, чтобы соответствовать четным шестнадцатеричным числам в Tcl? - PullRequest
3 голосов
/ 31 марта 2011

Можно ли написать регулярное выражение Tcl, чтобы проверить, является ли строка шестнадцатеричным числом, которое является четным?

Ответы [ 2 ]

4 голосов
/ 01 апреля 2011

Требуется ли регулярное выражение?

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

if {[is_even 0xdeadbeef]} {puts even} else {puts odd}
4 голосов
/ 31 марта 2011

Этот код tcl сделает работу:

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

Обратите внимание, что a, c и e также являются четными числами, и вам нужен -nocase, чтобы соответствовать a-f и A-F.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...