我只想检查字符串中出现的所有字母是否都是大写字母(如果它们有小写和大写变体)。 Tcl的内置过程表现不尽如人意,例如,
string is upper "123A"
返回false,但我希望它返回true。如果A被替换为大写的西里尔字母,或者来自另一个没有案例的流行字母表的字母,我也希望它返回true。我可以简单地过滤掉字符串中的所有非字母,但是当你尝试处理除英语以外的其他语言的字母时,我认为这并不是那么简单。
答案 0 :(得分:2)
在这种情况下,您不希望string is upper
检查字符串是只是大写字母。 (数字不是字母。)
相反,你想做:
set str "123A"
if {$str eq [string toupper $str]} {
# It's upper-case by your definition...
}