代码如下:
package TestRegex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test01 {
? ? /**
? ? ?* 邮政编码正则:"^[1-9]\\d{5}$"
? ? ?* ^:正则开始符
? ? ?* $:正则结束符
? ? ?* [1-9]:范围为1-9
* \:转移字符
? ? ?* \d:数字0-9
? ? ?* X{n}:恰好n次:注意从0开始
? ? ?*/
? ? public static void main(String[] args) {
? ? ? ? //定义正则
? ? ? ? String str= "^[1-9]\\d{5}$";
? ? ? ? //正确的邮件编码
? ? ? ? String s = "471400";
? ? ? ? //错误邮政编码
? ? ? ? String s2 ="4560200";
? ? ? ?/**
? ? ? ? ?* Pattern为模式类型,
? ? ? ? ?* compile(正则)方法预编译正则,
? ? ? ? ?* 得到一个Matcher对象
? ? ? ? ?*/
? ? ? ? Pattern p =Patternpile(str);
? ? ? ? //Pattern中的matcher()方法传入要匹配的字符串与正则进行匹配i
? ? ? ? Matcher m=p.matcher(s);
? ? ? ? Matcher m2=p.matcher(s2);
? ? ? ? //Matcher类中的matches()方法判断是否匹配成功
? ? ? ? boolean bo= m.matches();
? ? ? ? boolean bo2= m2.matches();
? ? ? ? //输出匹配结果:true为成功,false为失败
? ? ? ? System.out.println(bo);
? ? ? ? System.out.println(bo2);
? ? }
}
扩展资料
正则表达式简单语法及常用正则表达式:
基本符号:
^ ?表示匹配字符串的开始位置 ?(例外 ?用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串)
$ ?表示匹配字符串的结束位置
* ?表示匹配 零次到多次
+ ?表示匹配 一次到多次 (至少有一次)
? ?表示匹配零次或一次
. ?表示匹配单个字符?
| ?表示为或者,两项中取一项
( ?) 小括号表示匹配括号中全部字符
[ ?] 中括号表示匹配括号中一个字符 范围描述 如[0-9 a-z A-Z]
{ ?} 大括号用于限定匹配次数 ?如 {n}表示匹配n个字符 ?{n,}表示至少匹配n个字符 ?{n,m}表示至少n,最多m
\ ?转义字符 如上基本符号匹配都需要转义字符 ? 如 \* ?表示匹配*号
\w 表示英文字母和数字 ?\W ?非字母和数字
\d ?表示数字 ? \D ?非数字
常用的正则表达式:
匹配中文字符的正则表达式:?[\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:\n[\s|?]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*)?\/>/?
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配IP地址的正则表达式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g?//
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*