Groovy Tip 19 正则表达式 二

Groovy Tip 19 正则表达式 二

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

我们在前一篇的《正则表达式》中重点谈到了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/

而“^”则注意要跟“[^]”区别开来,“^”表示以什么开头,而“[^]”则表示非。如下面所示的例子。

下面的例子表示非abc三个字母的所有符号:

println 'f' ==~ /[^abc]/

下面的例子则不匹配:

println 'b' ==~ /[^abc]/

而下面的例子则表示以“abc”开头的匹配:

println 'abcd' ==~ /^abc./

而下面的例子却不匹配:

println 'adcd' ==~ /^abc./

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值