Groovy Tip 19 正则表达式 二
我们在前一篇的《正则表达式》中重点谈到了Groovy语言的一些重要的通配符,可以说那些通配符是一些标准的和基础的通配符。看过了那些通配符以后,我就常常在想,Groovy语言作为一种敏捷性的动态语言,会不会有一些更为方便的通配符呢?
如我们所愿,Groovy语言为我们提供了如下的一些更为简便的通配符:
/d 数字字符
/D 非数字字符
/s 空格符
/S 非空格符
/w 文字字符
/W 非文字字符
/b 单词标记
^ 语句行的开头
$ 语句行的结尾
可以看到,这些通配符正是在以前通配符的基础上,对一些常用的正则表达式做进一步的通配,以达到简化我们编码的目的。下面试举几个例子来看看这些通配符的用法。
通配符“/d”就是对数字字符的通配,比如:
def str3 = '3'
println str3 ==~ //d/
就打印“true”,而
def str8 = 'a'
println str8 ==~ //d/
就打印“false”。
我们在前一篇的《正则表达式》中有一个匹配数字的例子,是这样的:
def str = '1000.31'
def re = /[0-9]+(/.[0-9]+)?/
println str ==~ re
这个正则表达式就有点长了,我们现在使用“/d”通配符就可以把上面的正则表达式简化成下面的样子:
def re = //d+(/./d+)?/
def str = 1000.31
println str ==~ re
而“/D”匹配的则是非数字,如:
def str4 = 'w'
println str4 ==~ //D/
“/s”匹配的是空格,如:
println ' ' ==~ //s+/
所有非空格的通配符则是“/S”。
“/w”匹配的是单词的字母,相当于“/[a-zA-Z]/”,如:
def str1 = 'a'
println str1 ==~ //w/
而所有的非单词字母符号的通配符为“/W”,如:
def str5 = '&'
println str5 ==~ //W/
“/b”指的是单词标记,如:
def hw = 'hello'
println hw ==~ //b/w+/b/
以“ed”结尾的过去式的匹配为:
def word = 'moved'
println word ==~ //b/w+ed/b/
而下面的例子则不匹配:
def w1 = 'ran'
println w1 ==~ //b/w+ed/b/
而“^”则注意要跟“[^]”区别开来,“^”表示以什么开头,而“[^]”则表示非。如下面所示的例子。
下面的例子表示非a、b、c三个字母的所有符号:
println 'f' ==~ /[^abc]/
下面的例子则不匹配:
println 'b' ==~ /[^abc]/
而下面的例子则表示以“abc”开头的匹配:
println 'abcd' ==~ /^abc./
而下面的例子却不匹配:
println 'adcd' ==~ /^abc./
总结以上是内存溢出为你收集整理的Groovy Tip 19 正则表达式 二全部内容,希望文章能够帮你解决Groovy Tip 19 正则表达式 二所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)