【发布时间】:2013-10-18 04:48:02
【问题描述】:
我只是想检查一个字符串中出现的所有字母是否都是大写的(如果它们有小写和大写的变体)。 Tcl 的内置 proc 的行为不如预期,例如,
string is upper "123A"
返回 false,但我希望它返回 true。如果 A 被替换为大写的西里尔字母,或者来自另一个没有大小写的流行字母表的字母,我也希望它返回 true。我可以简单地从字符串中过滤掉所有非字母,但是当您尝试处理来自英语以外的其他语言的字母时,我认为这并不是那么简单。
【问题讨论】:
-
stringToCheck.ToUpper() == stringToCheck -
我的印象是 Tcl (string toupper) 中的等效项对于外国字母表失败了,但看起来这可能已在最近版本的 Tcl 中得到修复。
-
@ZachConn 我不了解 Tcl。但是例如 Php 有一个函数 strtoupper() 会遇到同样的问题。但是 php 函数 mb_ strtoupper() 没有。
-
@nl-x:Tcl 中的所有字符串都是透明的 mb-aware。 (有一些历史性的错误,但它们就是:历史性的。)
标签: string internationalization tcl