正则表达式概述与JAVA中正则表达式的应用
编程或者电脑使用过程中,经常需要对字符串进行 匹配,查找,替换,判断。如果单纯用代码 if () ,whlie 什么的进行比较复杂麻烦。正则表达式是一种强大灵活的文本处理工具,专门对字符串进行匹配,查找,替换,判断。
正则表达式的各种匹配符
// 正则表达式的各种匹配符 ^ 从行的开始位置开始匹配
$ 匹配到行的结束位置
\b 匹配单词的开始或结束位置 . 匹配除换行符的所有任意字符
\w 匹配单字(a-z,A-Z,0-9,下划线)
\W 匹配非单字字符
\s 匹配空白字符
\S 匹配非空白字符
\d 匹配数字字符(0-9)
\D 匹配非数字字符 * 匹配前面表达式零次或多次,等价于 {0,}
+ 匹配前面表达式一次或多次,等价于 {1,}
? 匹配前面表达式零次或一次,等价于{0,1}
{n} 匹配前面的表达式n次,n是一个非负整数
{n,} 匹配前面的表达式至少n次,n是一个非负整数
{n,m} 匹配前面的表达式 n-m 次, nm都是非负整数 [] 字符类,如[123]表示有123中任意一个数字,[1-9]表示1到9中任意一个数字
() 分组,匹配括号里的整体,(java)+ 就是匹配一个"java"至少出现一次的字符串
^ 反义匹配,用在判断条件前。 例如 .*[^\d]\.java$ 就是匹配最后一位非数字的java文件
| 逻辑或
\ 转义字符,和编程语言里的一样
了解了这些匹配符,就可以开始写匹配式,很多网站提交信息的时候说填写的什么信息不规范就是正则匹配式进行判断。
手机号码验证:国内手机都是13,15,18开头的11位数字,据此来进行匹配验证
匹配式: \b1[358]\d{9}\b 开头与结尾写\b,号码开始是1,第二位是3、5、8中的一个数字,剩下九位是数字
boolean check = false;
String regex = "\b1[358]\d{9}\b";
String input = "19100390888";
Pattern pattern = Pattern.compile(regex) //编译正则表达式
Matcher matcher = pattern.matcher(input) //进行匹配
if (matcher.matches()) check = true;
return check;
身份证验证:前六位地区码(数字),中间八位生日(数字),末尾四位标识码(数字)。生日年开头是19或者2,月01-12,日01-31。
匹配式: ^\d{6}((19)|(2\d)\d{2}((0\d)|(1[012]))(([0-2]\d)|(3[01]))\d{4})$
boolean check = false;
String regex = "^\d{6}((19)|(2\d)\d{2}((0\d)|(1[012]))(([0-2]\d)|(3[01]))\d{4})$";
String input = "19100390888";
Pattern pattern = Pattern.compile(regex) //编译正则表达式
Matcher matcher = pattern.matcher(input) //进行匹配
if (matcher.matches()) check = true;
return check;
邮箱验证:前面任意位数非空字符,必须带@,末尾必须有.com或者.cn
匹配式: \w+@\w+\.(com)|(cn)
boolean check = false;
String regex = "\w+@\w+\.(com)|(cn)";
String input = "19100390888";
Pattern pattern = Pattern.compile(regex) //编译正则表达式
Matcher matcher = pattern.matcher(input) //进行匹配
if (matcher.matches()) check = true;
return check;
/*
******逸雨清风 出品
******http://blog.csdn.net/xyydyyqf
******2013.6.23
*/
正则表达式概述与JAVA中正则表达式的应用的更多相关文章
- java中正则表达式基本用法
正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为 ...
- java基础---->java中正则表达式二
跟正则表达式相关的类有:Pattern.Matcher和String.今天我们就开始Java中正则表达式的学习. Pattern和Matcher的理解 一.正则表达式的使用方法 一般推荐使用的方式如下 ...
- Java中正则表达式去除html标签
Java中正则表达式去除html的标签,主要目的更精确的显示内容,比如前一段时间在做类似于博客中发布文章功能,当编辑器中输入内容后会将样式标签也传入后台并且保存数据库,但是在显示摘要的时候,比如显示正 ...
- 1000行代码徒手写正则表达式引擎【1】--JAVA中正则表达式的使用
简介: 本文是系列博客的第一篇,主要讲解和分析正则表达式规则以及JAVA中原生正则表达式引擎的使用.在后续的文章中会涉及基于NFA的正则表达式引擎内部的工作原理,并在此基础上用1000行左右的JAVA ...
- JAVA中正则表达式常用的四个方法
JAVA中正则表达式处理字符串的四个常用方法:匹配.分割.替换.截取.其跟字符串的常用函数相似,但是使用正则表达式会更简单.更加简洁.下面是具体的例子: public class TestRegex ...
- java中正则表达式基本用法(转)
https://www.cnblogs.com/xhj123/p/6032683.html 正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符( ...
- JAVA中正则表达式学习总结
一.JAVA中正则表达式相关的类 1. java.util.regex.Pattern 该类用于编译模式,模式可以理解为一个正则表达式,比如:a*b. 用法如下: // 创建模式 Pattern p ...
- Java中正则表达式的使用(常用的方法)
这两天回想了一下正则表达式的使用,顺便就总结了一下java的javascript中使用正则表达式的用法,需要看javascript中使用正则的朋友可以看我的另一篇总结,下面我就简单的介绍一下java中 ...
- Java中正则表达式、模式匹配与信息抽取
引言 记得几年前在做网页爬虫后的信息抽取时,针对网页源码中隐藏的要提取的信息,比如评论.用户信息等属性信息,直接利用HtmlParser得到.如此做倒是简单,不过利用的是网页的规范的tag标记.其实j ...
随机推荐
- Jquery 实现动态加入table tr 和删除tr 以及checkbox的全选 和 获取加入TR删除TR后的数据
关于jquery实现动态加入table tr的问题我也不多说了 上面代码非常多地方都有凝视的 关于返回的 编辑后的table 数据 我这里想说的是我直接把他保存成一个连接起来的字符串了 格式 str= ...
- 工作需要稍微研究了一下Hyper-V
Hyper-V是指微软的虚拟化技术,底层用得Hypervisior好像没有特殊的名字 虚拟化市场占有率前三:VMWare,Hyper-V,Citrix Citrix的XenServer今年彻底开源,原 ...
- TCP之超时和重传
RTT:往返时间: RTO:Retransmission Timeout即超时重传时间: 关键点在于:超时和重传间隔的策略,即怎样确定超时间隔和重传间隔: TCP中的四个定时器:2MSL定时器:重传 ...
- ViewPager引导页效果实例源码
首先大家先找到本地的sdk,然后找到Google提供的API,具体查找方法如下:sdk——>docs——>index.html——>develop——>training——&g ...
- 【转载】Java重构示例【1】
序言 本文通过Java示例代码片段展示了常用重构原则和技巧,供初级开发人员参考.精致的代码能够清楚传达作者的意图,精致的代码是最好的注释,精致的代码非常容易维护和扩展.程序员阅读精致的代码如同大众欣赏 ...
- 自己新建Xib 和.h .m文件关联
代理中注意点 1.新建MainViewController.h 和 MainViewController.m文件: 新建Main.xib文件: 2.拖View到Main.xib中: 3.点击File’ ...
- web前端如何让网页布局稳定性和标准性?
刚开始学css+div布局的同学们,都比较困惑和难写的就是兼容性的问题了,特别是ie6等低版本的浏览器,随意国内逐步慢慢消失取代,但是现阶段还是会有点考虑因素再里面.我们写的网页布局怎么样才是合理的, ...
- redis(二)redis+TCMALLOC高性能的缓存服务器的安装配置
安装 1准备编译环境 yum -y install gcc gcc+ gcc-c++ openssl openssl-devel pcre pcre-devel 2 下载源码包(由于goog ...
- iframe,window,滚动栏的一些问题
1.Iframe不显示边框:frameborder=0 2.Iframe不显示横向滚动栏:在iframe所指向的页面增加: <style> html{overflow-x:hidden;} ...
- QTP实践总结
QTP实践总结 查询数据库修改freq 1.Testcasetable创建查询select * from testcasetable order by fseq desc 2.设计表-选项-修改自动递 ...