0

我只是想检查字符串中出现的所有字母是否都是大写字母(如果它们有小写和大写变体)。Tcl 的内置 proc 的行为并不符合预期,例如,

string is upper "123A"

返回false,但我希望它返回true。如果 A 被替换为大写的西里尔字母,或者来自另一个没有大小写的流行字母表的字母,我也希望它返回 true。我可以简单地从字符串中过滤掉所有非字母,但是当您尝试处理来自英语以外的其他语言的字母时,我认为这并不是那么简单。

4

1 回答 1

2

在这种情况下,您不需要string is upper检查字符串是否只是大写字母。(数字不是字母。)

相反,你想做:

set str "123A"
if {$str eq [string toupper $str]} {
    # It's upper-case by your definition...
}
于 2013-10-17T20:48:02.407 回答