Java正则表达式(一)

       正则表达式是一个很有用的东西,也是一个很有趣的东西。当你需要你的软件从一篇文章中自动取得你想要的段落时,它就会展现出它的价值了。

       然而正则表达式不是那么容易掌握的,甚至很难理解,常常你会难以看懂别人写的一长串正则表达式,但它确实能达到目的。

       话虽如此,要想学会正则表达式,还是得从基础开始。


Java正则表达式基础(部分)

(1)转义字符

       由于Java中数据源通常是字符串形式,所以一些特殊字符需要用转义字符来表达,下面列举的是几个常用的转义字符在字符串中的写法:

\\s    空格

\\t     TAB

\\n    换行

(2)单个字符限定条件

       单个字符限定条件,使用符号“[ ]"(方括号)

[a-z]    限定为小写字母a到z之间的任意一个字符

[A-Z]   限定为大写字母A到Z之间的任意一个字符

[a-zA-Z]    同理,即限定为大小写的26个字母

[0-9]    限定为0到9中的任意一个数字


其中,在方括号内加入^(尖号),表示“非”

[^a-z]    表示除a到z之外的任意一个字符

其余同理

(3)匹配多个字符

a*    表示0个及以上数量的a

.*    表示0个及以上数量的任意一个字符


实例:

        从一个网页的源码中匹配带有href属性和title属性的a标签:

          "(<a\\shref=[^>]*\\stitle=[^>]*>)"

       假定其中a与href之间只有一个空格,href的值最后一个字符与title之间也只有一个空格。其中要匹配的是href属性的值,用[^>]*表示多个不是>号的任意字符,目的是不能匹配到a标签的结束位置。整体外面添加()号的原因是,把a标签整体视作一个组合,这样在一长串的网页源码中才能匹配到想要的结果。

Pattern pattern = Pattern.compile(tagRegex);
Matcher matcher = pattern.matcher(htmlResource);
boolean result = matcher.find();
while (result) {
	for (int j = 1; j <= matcher.groupCount(); j++) {
		tags.add(matcher.group(j));
	}
	result = matcher.find();
}

       其中tags是一个Vector<String>变量,用来存储匹配到的a标签结果。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值