发布网友 发布时间:2022-04-23 05:03
共6个回答
热心网友 时间:2022-04-20 09:19
代码如下:
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 =Pattern.compile(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+)*
热心网友 时间:2022-04-20 10:37
(?!)意思是否定顺序环视,不匹配右边的内容。[1-9]\d{5}(?!\d)整个表达式的意思就是:以1至9的数字开头,后面接5位任意数字,并且第6位开始(也就是邮编的末尾)不能是任意数字。\d就是任意数字的意思。热心网友 时间:2022-04-20 12:12
注意注意:兄弟,你这个表达式呀,让我改了好几条数据了,河北那边基本都是以0开头的邮编,大家可以试试这个:^[0-9]\\d{5}$热心网友 时间:2022-04-20 14:03
匹配中国邮政编码:[1-9]d{5}(?!d)评注:中国邮政编码为6位数字热心网友 时间:2022-04-20 16:11
这个错误,河北 05-07 开头热心网友 时间:2022-04-20 18:36
^\\d{6}$