Groovy 使用正则表达式

假设必须准备这本书的一个目录列表,那么需要收集所有的像“3.5 使用正在表达式”这样的标题——以一个数字开始或者一个数字,一个点和另外一个数字,其余的将是标题,这将是复杂的代码:检查书中的每一个字符,看它是否是一行的开始,如果是,那么检查它是否是一个数字,如果是,检查接下来的字符是否是一个点或者数字。

——许多的串,我们甚至不能处理大量的数字。

使用正则表达式能解决这个问题,正则表达式允许声明一个模式而不是编程,由于模式只写一次,groovy能做更多方面的工作。

正则表达式是脚本语言显著的特性,并且在JDK1.4之后也是可以使用的,groovy依赖java的正则表达式并且为了便利性增加了三个操作符:[code] regex查找操作符“=~”;

 regex匹配操作符“==~”;

 regex模式操作符:~String;
[/code]深入讨论正则表达式是在这本书的后面部分,我们关注的是groovy,而不是正则表达式,本书给出尽可能短的介绍,使例子可以被理解并且使读者能入门。

正则表达式通过模式进行定义,一个模式可以是任何一个简单的字符,一个固定的字符串或者一些像构成日期格式的数字和分隔符,模式使用符号序列进行声明,事实上,语言本身就是一个模式描述,在表3.7中显示了一些例子,注意这些都是未处理的模式,他们没有出现在字符串中,换句话说,如果你保存一个模式在一个变量中并且打印这个模式,这是你想要的结果,区别模式自身和在代码中的出现形式是很重要的。

表3.7 简单的正在表达式例子

列表3.7中的例子用来说明需要查找的内容是什么,而不是必须编程来进行查找,接下来将看到怎样在代码中应用模式并且能用模式做什么工作,然后通过一个完整的解决办法再看看最初的例子,审查正则表达式的性能和在switch语句中如何使用grep方法进行过滤。