正则表达式学习笔记

本人使用正则表式,主要是为了对数据验证提高效率。但不知还有什么其它的妙用。
 

一、常用元字符

所谓元字符,是正则表达式规定的一些特殊代码,在表达式中有特殊的含义,这里只列出了一些很常用的
代码说明
.匹配除换行符以外的任意字符
/w匹配字母或数字或下划线或汉字
/s匹配任意的空白符
/d匹配数字
/b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束
代码/语法说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次
代码/语法说明
/W匹配任意不是字母,数字,下划线,汉字的字符
/S匹配任意不是空白符的字符
/D匹配任意非数字的字符
/B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符
 

二、常用正则表达式

匹配中文字符的正则表达式: [/u4e00-/u9fa5]   只要包含中文就返回true
匹配Email地址的正则表达式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
匹配网址URL的正则表达式:[a-zA-z]+://[^/s]*
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配国内电话号码:/d{3}-/d{8}|/d{4}-/d{7}
匹配腾讯QQ号:[1-9][0-9]{4,}
匹配中国邮政编码:[1-9]/d{5}(?!/d)
匹配身份证:/d{15}|/d{18}
匹配ip地址:/d+/./d+/./d+/./d+
匹配特定数字:
^[1-9]/d*$    //匹配正整数
^-[1-9]/d*$   //匹配负整数
^-?[1-9]/d*$   //匹配整数
^[1-9]/d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]/d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]/d*/./d*|0/./d*[1-9]/d*$   //匹配正浮点数
^-([1-9]/d*/./d*|0/./d*[1-9]/d*)$  //匹配负浮点数
^-?([1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0)$  //匹配浮点数
^[1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]/d*/./d*|0/./d*[1-9]/d*))|0?/.0+|0$  //匹配非正浮点数(负浮点数 + 0)
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^/w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
 

三、javascript中正则表达式的使用

 
以下代码用来测试字符串是否含有'/等非法字符,由test方法执行。
<script>
var s= 'sdfd//f';
alert(issafe(s));
function issafe(str){
var reg = /^.*[||/|<|>].*$/;
return !reg.test(str);
}
</script>
 

四、java中正则表达式的使用

如下,先要导入regex包,这个例子测试字符串是否是一个网址。
package test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test {
public static void main(String [] args) throws ClassNotFoundException, SQLException{
 Pattern pattern = Pattern.compile("[a-zA-z]+://[^//s]*");
 String phone = " http://www.sina.com";
 Matcher matcher = pattern.matcher(phone);
 if (matcher.find()){
  System.out.println("correspond");  
 }else{
  System.out.println("no correspond");
 }
}

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值