【Java编程】Java中的字符串匹配
在Java中,字符串的匹配可以使用下面两种方法:
1、\d 代表任何数字
2、\D 代表任何非数字字符
3、\w 代表任何单字字符(如:字母、数字、下划线等等)
4、\W 代表任何非单字字符
5、\s 代表任何空白字符
6、\S 代表任何非空白字符
1、* 表示匹配字符个数为0个或多个
2、+ 表示匹配字符个数为1个或多个
3、? 表示匹配字符个数为0个或1个
4、{n} 表示匹配字符的个数正好为n个
5、{n,} 表示匹配字符个数至少为n个
6、{n,m} 表示匹配字符个数至少为n个,最多为m个
定义如下的正则表达式regex:
String regex="[0]\\d{2,3}[-][1-9]\\d{6,7}"
含义说明如下:
1、[0]表示字符串中第一个字符必须是0
2、\\d{2,3}数字0后面最少2个数字、最多3个数字
3、[-]表明这里必须是连字符-
4、[1-9]表示只能是数字1~9
5、\\d{6,7}表示这里最少6个数字,最多7个数字
package tengwei.com; import java.util.regex.Pattern; import javax.swing.JOptionPane; public class UseMatchesMethod { public static void main(String args[]) { String input = JOptionPane.showInputDialog("请输入有效的电子邮件!"); String reg = "[a-zA-Z]\\w*[@]\\w+[.]\\w{2,}"; if(input.matches(reg)) System.out.println("是有效的电子邮件!"); else System.out.println("不是有效的电子邮件!"); if(Pattern.matches(reg, input)) System.out.println("是有效的电子邮件"); else System.out.println("不是有效的电子邮件!"); } }
package tengwei.com; import java.util.regex.Matcher; import java.util.regex.Pattern; public class UsePattern { public static void main(String[] args) { // TODO Auto-generated method stub String str="We call this the live-code approach." +"These examples are available from three locations-they are " +"on the CD that accompanies this book"; Pattern expression = Pattern.compile("[a-zA-Z]+");//创建匹配模式 Matcher matcher=expression.matcher(str);//通过匹配模式得到匹配器 //通过这种方式来进行重复匹配的效率较高 String word=null; int n=0; while(matcher.find())//扫描是否有匹配的子串,如果匹配器没有重置,则从当前下一个还没进行匹配的字符开始匹配 { word=matcher.group();//得到匹配的子串 System.out.println(word+"\t"); if((n+1)%4==0)//每行显示四个单词 System.out.println(); n++; } System.out.print("\n单词总数:"+n); System.out.println("\n单词字母9个及以上的单词有:"); Pattern expression1 = Pattern.compile("[a-zA-Z]{9,}"); Matcher matcher1=expression1.matcher(str); while(matcher1.find()) { word=matcher1.group(); System.out.println(word+"\n"); } System.out.println(); } }
原文:http://blog.csdn.net/tengweitw/article/details/24727521
作者:nineheadedbird
【Java编程】Java中的字符串匹配的更多相关文章
- Java编程思想中关于闭包的一个例子
Java编程思想中的一个例子,不是很理解使用闭包的必要性,如果不使用闭包,是不是有些任务就不能完成?继续探索. package InnerClass; interface Incrementable ...
- JAVA编程思想中总结的与C++的区别
Java和C++都是面向对象语言.也就是说,它们都能够实现面向对象思想(封装,继乘,多态).而由于c++为了照顾大量的C语言使用者,而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象 ...
- JAVA判断字符串中某个字符存在的个数
/** * 判断字符串中某个字符存在的个数 * @param str1 完整字符串 * @param str2 要统计匹配个数的字符 * @return */ public static int co ...
- java统计字符串中每个字符出现的次数
package MapTest; import java.util.HashMap; public class MapTest { public static void Count(String st ...
- sql中的字符串匹配、函数大全
假设你想建立一个与Yahoo功能相似的Internet目录.你可以建立一个表用来保存一系列的站点名称,统一资源定位器(URL),描述,和类别,并答应访问者通过在HTML form中输入要害字来检索这些 ...
- 【LeetCode】1408. 数组中的字符串匹配 String Matching in an Array
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 暴力遍历 日期 题目地址:https://leetco ...
- leetcode 第184场周赛第一题(数组中的字符串匹配)
一.函数的运用 1,strstr(a,b); 判断b是否为a的子串,如果是,返回从b的开头开始到a的结尾 如“abcdefgh” “de” 返回“defgh”: 如果不是子串,返回NULL: 2,me ...
- 深入剖析Java编程中的中文问题及建议最优解决方法
摘录自:http://fafeng.blogbus.com/logs/3062998.html http://www.blogbus.com/fafeng-logs/3063006.html 深入剖析 ...
- Java中面向字符的输入流
Java中面向字符的输入流 2016-12-04 Java程序员联盟 Java程序员联盟 Java程序员联盟 微信号 javalm 功能介绍 莫道君行早,更有早行人 全心敲代码,天道自酬勤 字符流是针 ...
随机推荐
- rbac数据库设计
1 rbac数据库设计 RBAC基于资源的访问控制(Resource-Based Access Control)是以资源为中心进行访问控制分享牛原创,分享牛系列,分享牛.rbac 用户角色权限资源表如 ...
- 2016年年终CSDN博客总结
2015年12月1日,结束了4个月的尚观嵌入式培训生涯,经过了几轮重重面试,最终来到了伟易达集团.经过了长达3个月的试用期,正式成为了伟易达集团的助理工程师. 回顾一年来的学习,工作,生活.各种酸甜苦 ...
- 在android系统上写C语言程序--开机启动该程序不进入安卓系统
今天要写的这篇博文意义重大,也是网上很少有的,这是在我工作中学会的一项技术,当然,它也是由简单的问题组合而来的.如何在安卓中写C语言程序,调试安卓驱动,测试程序的的一项重要技能,下面我就不说废话了,直 ...
- Button的几种常用的xml背景,扁平化,下划线,边框包裹,以及按压效果
Button的几种常用的xml背景,扁平化,下划线,边框包裹,以及按压效果 分享下我项目中用到的几种Button的效果,说实话,还真挺好看的 一.标准圆角 效果是这样的 他的实现很简单,我们只需要两个 ...
- Dynamics CRM2016 Supported versions of Internet Explorer and Microsoft Edge
在CRM2016发布在即之时,让咱们看下新版的CRM对IE及Edge的支持 这次和以往不同,官方给出的不只是IE几以上支持,IE几以下不支持,而是有一个对应的系统列表,具体看下表. 当然你也可以说我I ...
- Android View的绘制过程
首先是view的绘制过程~最主要的分三部分 measure layout draw 看字面意思,计算,布局,画~ android中控件相当于是画在一个无限大的画布上的,那就产生了几个问题 画布无限大, ...
- UILabel设定行间距方法
NSString *textStr = @"iPhone规定:任何应用想访问麦克风,必须被授权麦克风服务.请进入"设置"->"隐私"->& ...
- git提交代码到github
前言:转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52117504 git提交代码到github 命令汇总: git init git ...
- Fetch XML and ConditionExpression operators
https://msdynamicscrmblog.wordpress.com/2013/05/10/fetch-xml-and-conditionexpression-operators-using ...
- Android开发学习之路--Activity之生命周期
其实这篇文章应该要在介绍Activity的时候写的,不过那个时候还不怎么熟悉Activity,还是在这里详细介绍下好了.还是参考下官方文档的图吧: 从上面的流程,我们可以看出首先就是打开APP,开始执 ...