需要对tcl

时间:2015-08-17 08:26:33

标签: regex tcl

我写了一个正则表达式: - if [regexp {.*DisplayName: \"([0-9]+)\"} $line match print] 它选择包含其中0-9位的所有单词,在相同的代码中我希望这个表达式也能用于表示字母表。

有人可以提供这样做的代码。

2 个答案:

答案 0 :(得分:0)

只需在该字符类中添加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:]中。

或者,甚至还有一个更好的解决方案:alnum包含数字和字母的类:

{DisplayName: \"([[:alnum:]]+)\"}