NAN*_*PAL 5 regex validation user-interface xsd tcl
我正在开发一个TCL GUI,我从XML Schema获取GUI的数据树结构,我必须像XML Schema一样验证限制的输入字段.在我使用的XML Schema中,我有简单类型NMTOKEN Name和NCName,分别带有模式限制' \c+',' \i\c*'和' [\i-[:]][\c-[:]]*'.我用来检查的代码是
method validatePatternValue { value } {
set patternCheck 1
set pattern "^($patternValue)\$"
set patternCheck [regexp $pattern $value]
if {$patternCheck == 0} {
tk_messageBox -message "Only Characters within range $patternValue for $patternValueType is\
accepted "
return 0
}
return 1
}
Run Code Online (Sandbox Code Playgroud)
每当$ pattern是其中之一' \c+',' \i\c*'和' [\i-[:]][\c-[:]]*'我的文本字段不接受任何输入并继续抛出错误异常对话框.
只是为了添加更多信息,我偶然发现了这个网站,并提供了一些有关处理' \i'和' \c' 组合的问题的一些信息.但除了以下链接中建议的方法之外,没有其他方法:XML Schema Character Classes
该\c转义序列不使用Tcl正则表达式是什么它在XML的模式正则表达式做.
在XML Schema中
\c匹配XML名称中第一个字符后可能出现的任何字符,即[-._:A-Za-z0-9]
在Tcl
\cX(其中X是任何字符)低位5位与X相同的字符,其他位全部为零
您发送的链接中也明确说明了这一点
请注意,\ c简写语法与许多其他正则表达式中使用的控制字符语法冲突.
你应该尝试使用[-.:\w]而不是\c
同样的情况也是如此\i,它在Tcl和XML中没有做同样的事情
| 归档时间: |
|
| 查看次数: |
875 次 |
| 最近记录: |