Tcl正規表現を書いて、文字列が偶数であることを確認しますか?Tclの16進数でも一致する正規表現ですか?
3
A
答えて
4
このTCLコードが作業を行います。
if {[regexp -linestop -nocase {^[\da-f]*[02468ace]$} $input]} {
# Success
} else {
# Fail
}
注意、CとEも偶数であり、あなたは-nocaseが-Fと同様-Fと一致する必要があるということを。
+0
評価を遅らせるためにif条件の前後に中括弧を追加しました –
+0
おそらく '-linestop'は必要ありません。デフォルトの "全体の文字列と一致する"動作はこの種のタスクに適しています。 –
4
正規表現にする必要がありますか?
proc is_even {n} {expr {($n & 1) == 0}}
if {[is_even 0xdeadbeef]} {puts even} else {puts odd}
16進数は簡単です。最後の数字がそれを決定するので、均一性をチェックすることはまだ可能です(実際にはまだ簡単です)。しかし、一般的に、http://stackoverflow.com/questions/4098086/to-use-or-note-to-use-regularを読むべきです。 -expressions/4098123#4098123そしてその知恵に留意してください。 – delnan