【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 功能介绍 莫道君行早,更有早行人 全心敲代码,天道自酬勤 字符流是针 ...
随机推荐
- Web自动化框架LazyUI使用手册(3)--单个xpath抓取插件详解(selenium元素抓取,有此插件,便再无所求!)
概述 前面的一篇博文粗略介绍了基于lazyUI的第一个demo,本文将详细描述此工具的设计和使用. 元素获取插件:LazyUI Elements Extractor,作为Chrome插件,用于抓取页面 ...
- C#删除WebBrowser控件的Session
因最近做一个成绩查询导出的程序,用到webbrowser控件,该查询的网站限制一个会话只能查询3次成绩,而我要查询4000多人的成绩. using System.Runtime.InteropServ ...
- Linux 高性能服务器编程——IP协议详解
1 IP服务特点 IP协议是TCP/IP协议族的动力,它为上层协议提供无状态.无连接.不可靠的服务. 无状态:IP通信双方不同步传输数据的状态信息,因此IP数据包的发送.传输和接收都是无序的. ...
- Android中Snackbar的介绍以及使用
Android中Snackbar的介绍以及使用 介绍 Snackbar可以说是Toast的升级版,不仅有显示信息的功能,还可以添加一个Action,实现点击功能,可以右滑删除. 效果图 Snackba ...
- Android Studio下导出jar包和aar包
Android Studio下导出jar包和aar包 jar包和aar包的区别 步骤 1. 创建Android工程 创建工程比较简单,不错复述 2. 创建一个Library(Module) 创建了一个 ...
- 剑指Offer——小米+小红书笔试题+知识点总结
剑指Offer--小米+小红书笔试题+知识点总结 情景回顾 时间:2016.9.23 19:00-21:00 2016.9.24 15:00-17:00 地点:山东省网络环境智能计算技术重点实验室 事 ...
- 微软Telnet的回显功能开启
win7和XP系统默认telnet的回显功能是关闭的.启用telnet回显功能:(1)首先进入命令行界面:输入telnet(2)进入Microsoft Telnet>命令提示符下,输入:set ...
- Dynamics CRM 视图显示列的拷贝—view layout replicator
在视图设置的时候很多人会遇到这样的问题,要设置多张视图,而这多张视图可能除了筛选条件不同外其他的均相同,手动去设置是件重复的令人非常头痛的事情,如果能够拷贝那就相当完美了. 本篇即介绍视图显示列的拷贝 ...
- ios zxing扫码问题
在ios 中 扫瞄二维码,条形码基本有 2中第三方的库,一个是zbar 一个是zxing,zxing 在android中表现的比较出色,但是在ios 中不是很好用,扫瞄效率低,我们一般都用zbar,但 ...
- ROS_Kinetic_25 在ubuntu16.04使用Leap_motion并作为手势输入控制Gazebo中的机器人
ROS_Kinetic_25 在ubuntu16.04使用Leap_motion并作为手势输入控制Gazebo中的机器人 先附上资料网址: 1. https://developer.leapmoti ...