一、什么是正则表达式
正则表达式(Regular Expression)是一种文本模式,包括普通字母(a-z)和特殊字符(称为“元字符”),正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
二、正则表达式的组成结构
以一个正则表达式为例,如:^【0-9】+abc$
1.^是表示匹配输入字符串的开始位置
2.【0-9】+表示匹配多个数字,【0-9】表示匹配一个数字,+表示匹配一个或者多个
3.abc$表示匹配字母abc并以abc结尾,$表示输入字符串的结束为止
例如我们在做用户注册的时候要求输入的用户名包含数字,字母,下划线,连接符(-),并且设置用户名的长度,就可以使用正则表达式来表示,如:
三、java正则表达式中常用的类
Java 正则表达式和 Perl 的是最为相似的。
java.util.regex 包主要包括以下三个类:
- Pattern 类:
pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。
- Matcher 类:
Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
- PatternSyntaxException:
PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。
四、javascript中的正则表达式
在 JavaScript 中,我们通常用test()方法去判断一个字符串是否符合我们预定义的规则,test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
exec() 方法是一个正则表达式方法。
exec() 方法用于检索字符串中的正则表达式的匹配。
该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
五、常用的正则表达式例子
/*是否带有小数*/ function isDecimal(strValue ) { var objRegExp= /^\d+\.\d+$/; return objRegExp.test(strValue); } /*校验是否中文名称组成 */ function ischina(str) { var reg=/^[\u4E00-\u9FA5]{2,4}$/; /*定义验证表达式*/ return reg.test(str); /*进行验证*/ } /*校验是否全由8位数字组成 */ function isStudentNo(str) { var reg=/^[0-9]{8}$/; /*定义验证表达式*/ return reg.test(str); /*进行验证*/ } /*校验电话码格式 */ function isTelCode(str) { var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/; return reg.test(str); } /*校验邮件地址是否合法 */ function IsEmail(str) { var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/; return reg.test(str); }