系列之十七:如何使用XSL和正则表达式来验证数据的有效性
XSL现在正在逐渐的成为XML中的类似与SQL在数据库设计中的地位。
虽然Microsoft's XSL仅仅是实现了其中的某一些部分的功能
但是你已经能够实现非常复杂的查询了
虽然现在的XSL仅仅还只是一种基于纯粹文本和字符串方式
的查询语言
在下面介绍的例子中,将大量使用到文本内的字符串方式的搜索,
你会发现在XML中对数据的处理很大一部分都是要使用到文本内的查询的。
这在XSL的编写中是一件非常普及的功能。
正是因为这样,你应该了解一些正则表达式应该如何来使用。
正则表达式的简单介绍
正则表达式大部分都是来自与Unix世界的需要。
在Unix中许多编程语言几乎整个都是围绕着正则表达式进行的(例如Perl, Python, Tcl)
但是令人感到奇怪的是正则表达式好象是最近才使用在Windows系列中的,
特别是大量的使用在脚本语言中,例如JavaScript和VBScript,
尽管你也可以将它们使用在Visual Basic或则Java中,但是显然它们似乎在
脚本语言中更加有吸引力。也许是这个缘故把,大家平时似乎都很少使用正则表达式把。
使用正则表达式,你可以根据你想查询的内容建立一个匹配模板(英文叫pattern)
一旦你使用正则表达式建立了一个模板,你就可以使用它来测试你的字符串了,
使用它可以完成很多功能:
例如判断一个字符串是否在另外一个字符串中(或则在另外一个字符串中的什么位置)
例如使用一个字符串来替换另外一个字符串
例如返回所有满足模板条件的字符串列表
例如。。。等等等等
上面我介绍了有关正则表达式的基本概念,有关它的详细说明和语法可以查阅MSDN和
JavaScript中的有关帮助。
在VB中如果你想引用正则表达式的话,你需要在项目中引用"Microsoft VBScript Regular Expressions"。但是如果你要是使用脚本的话就不必要了,因为在脚本里面这已经是一个
内在的对象供你引用了。
当然你需要在你的机器上安装IE4以上罗。
这个对象(在JavaScript中)叫RegExp
下面还是让代码来说明问题把,现在假设你想查看一个文挡里面是否包含一个特定的
字符串(例如"regular expressions")
代码见下:
代码使用VB写成。
Public Function IsTermInDocument(filePath As String,_
expr As String) As Boolean