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">
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">
相关文章推荐
- Java正则表达式组group()的用法
- JAVA正则表达式group用法
- Java学习笔记之Pattern类的用法详解(正则表达式)
- Java正则表达式用法
- Java学习笔记—正则表达式的用法
- 学习JAVA正则表达式基本用法
- java语言正则表达式的用法
- 正则表达式的一般用法
- Java 正则表达式的用法及详细介绍
- 正则表达式的一般用法
- java 正则表达式详细用法
- [Java] 学习笔记一(String,for循环,多线程,正则表达式,map用法)
- 正则表达式的一般用法
- Java正则表达式 Matcher类成员函数 matches find lookingAt group start end 用法
- java正则表达式用法
- Java中正则表达式的几种用法
- java 正则表达式用法解析
- JAVA正则表达式高级用法(分组与捕获)
- java正则表达式用法
- JAVA 正则表达式 appendReplacement和appendTail的用法