标签: regex tcl
我写了一个正则表达式: - if [regexp {.*DisplayName: \"([0-9]+)\"} $line match print] 它选择包含其中0-9位的所有单词,在相同的代码中我希望这个表达式也能用于表示字母表。
if [regexp {.*DisplayName: \"([0-9]+)\"} $line match print]
有人可以提供这样做的代码。
答案 0 :(得分:0)
只需在该字符类中添加A-Za-z即可匹配数字和字母。
A-Za-z
if [regexp {.*DisplayName: \"([0-9A-Za-z]+)\"}
答案 1 :(得分:0)
我建议使用POSIX类:
{DisplayName: \"([[:digit:][:alpha:]]+)\"}
请参阅demo
请参阅docs:
字符类(如[:alpha:])优于括号中的显式范围(如[a-z])的优点是字符类包含在ASCII键盘上不易键入的字符。例如,西班牙语包含字符ñ。它不属于[a-z]范围,但它位于Tcl 8.1字符类[:alpha:]中。
[:alpha:]
[a-z]
ñ
或者,甚至还有一个更好的解决方案:alnum包含数字和字母的类:
alnum
{DisplayName: \"([[:alnum:]]+)\"}