您的位置:首页 > 编程语言 > Java开发

java中正则表达式的一般用法

2007-07-25 11:32 330 查看
java中提供正则表达式功能的类在java.util.regex包下,有两个类:Pattern 和 Matcher。正则表达会先被编译为Pattern类,然后创建匹配器,由匹配器进行匹配,典型的调用顺序为:

Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();

也可以调用 

while(m.find())

{

System.out.println(m.group());

}

如果有捕获组可以用m.group(i)来提取相应的捕获组,其中i为捕获组的序号,0表示整体。

我们可以看到其实用法是很简单,最重要的步骤还在于写出正确的正则表达式,下面是几种常用的表达式:

这些表达式有很多是javascript的,很多语言中都有正则表达式的实现,写法也略有不同,不过如果理解了的话,表面上的不同也不会有什么障碍,我们可以根据它来写满足我们自己需要的表达式。

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x00-\xff]

匹配空行的正则表达式:\n[\s| ]*\r

匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/

匹配首尾空格的正则表达式:(^\s*)|(\s*$)

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

匹配网址URL的正则表达式:+/.)+[/w-]+(/[/w]http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

只能输入数字和英文的:
<input onkeyup="value=value.replace(/[\W]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text1" NAME="Text1">

只能输入数字的:
<input onkeyup="value=value.replace(/[^\d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text2" NAME="Text2">

只能输入全角的:
<input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))" ID="Text3" NAME="Text3">

只能输入汉字的:
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" ID="Text4" NAME="Text4">
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: