Java基础-正则表达式(一)

正则表达很实用,尤其是操作字符串,比如我们要提取“ Hello ,my name is ipolaris!”中所有单词,你会用使用生么方法呢。想到的方法可能split(),但是()内应该是什么呢,是“,”," "还是“!”,恐怕是三者都得有,这样就会使用到正则表达式就比较方便了,而且split(regex)的参数名也很显然是要求正则表达式。


package net.csdn.blog.iPolaris.javatest;

public class JavaTest {

	static String testStr = "Hello,my name is ipolaris!";
	public static void main(String[] args) {
		for (String string : testStr.split(",| |!")) {//正则中"|"表示一种或的关系
			System.out.println(string);
		}
	}

}


运行的结果如下:


如果在上面字符串中加上一个数字,变成了了“Hello ,my name is ipolaris 007!”,我们还是想提取所有的单词,当然我们不把007算在单词之内(而且007是可变的,也可能是其他的数字,所以这里我们的目的是把数字过滤掉),我们把过滤数字的正则定义为“-?\\d+|\\+?\\d”,整个的就应该为",| |!|-?\\d+|\\+?\\d",过滤数字当然也要过滤掉符合“-”,“+”,“?”表示之前的表达式出现一次或不出现,“\d”表示数字,再加个“\”转义一下,“+”表示出现也过或多个之前的表达式,此处也就是说出现一个或多个数字。这样就能达到提取单词的目的了。但是如果不断的扩展下去,我们再在里面添加其他的一些字符,如:“?”等,我门的表达式就要变得很长了,但是我们可以用一个表达式来筛选所有非字母的字符。正常的话单词都已大写或小写字母开头(暂不考虑类似I’am这种形式),所以表达式为[a-zA-Z],非字母的表达式可以表示为[^a-zA-Z],这样的话也能将所有的单词过滤出来。split方法只是一种正则表达是的一种应用,像replaceAll(regexreplacement)等方法也可以应用正则表达式来进行字符串灵活的操作。

关于正则表达式中各字符的含义,可以查阅文档http://www.cjsdn.net/Doc/JDK60/ 在 java.util.regex.Pattern中会有详细的解释


 

Java基础-正则表达式(二)



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值