本文实例讲述了正则表达式教程之匹配单个字符。分享给大家供大家参考,具体如下:

注:在所有例子中正则表达式匹配结果包含在源文本中的【和】之间,有的例子会使用Java来实现,如果是java本身正则表达式的用法,会在相应的地方说明。所有java例子都在JDK1.6.0_13下测试通过。
java测试代码:
/**
* 根据正则表达式和要匹配的源文本,输出匹配结果
* @param regex 正则表达式
* @param sourceText 要匹配的源文本
*/
public static void matchAndPrint(String regex, String sourceText){
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(sourceText);
while(matcher.find()){
System.out.println(matcher.group());
}
}
一、匹配纯文本
1、只有一个匹配结果
首先来看一个简单的正则表达式,today,虽然它本身是纯文本,但它是一个正则表达式。来看一个例子:
源文本:Yesterday is history,tomorrow is a mystery, but today is a gift.
正则表达式:today
结果:Yesterday is history,tomorrow is a mystery, but 【today】 is a gift.
分析:这里使用的正则表达式是纯文本,它匹配了源文本中的today。
调用matchAndPrint方法,输出结果是:
today
2、有多个匹配结果
源文本:Yesterday is history,tomorrow is a mystery, but today is a gift.
正则表达式:is
结果:Yesterday is history,tomorrow is a mystery, but 【today】 is a gift.
分析:在源文本中,有三个is,但输出了四个is,因为history中的is也会被匹配到。
调用matchAndPrint方法,输出结果是:
is
is
is
is
3、字母大小写问题
正则表达式是区分字母大小写的,但很多正则表达式的实现中也支持不区分大小写的匹配操作。在JavaScript中,使用i标志来执行一次不区分字母大小写的匹配。在java中,如果要不区分大小写,那么在编译正则表达式时,可以指定:
Patternpattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
二、匹配任意字符
前面见到的正则表达式都是静态的纯文本,它们根本体现不出正则表达式的威力。下面,来看看如何使用正则表达式来匹配不可预知的字符。
在正则表达式中,特殊字符(或字符集合)用来给出要搜索的东西。.字符(英文状态句号)可以匹配任何一个单个字符。相当于DOS中的?字符和SQL中的_(下划线)字符。如:正则表达式c.t将匹配cat、cut、cot等等。下面来看一个例子。
文本:
orders1.txt
orders2.txt
sales1.txt
salesA.txt
orders3.txt
sales2.txt
sales.txt
正则表达式:sales.
结果:
orders1.txt
orders2.txt
【sales1】.txt
【salesA】.txt
orders3.txt
【sales2】.txt
【sales.】txt
分析:正则表达式sales.将把由字符串sales和另外一个字条构成的文件名找出来,从结果可以看出,.可以匹配字母、数字以及它本身。7个文件中有4个与这个模式匹配。
如果调用matchAndPrint方法,输出结果是:
sales1
salesA
sales2
sales.
三、匹配特殊字符
.字符在正则表达式中有着特殊的含义。如果模式里需要一个.,就要想办法来告诉正则表达式你需要的是.字符本身而不是它在正则表达式中的特殊含义。为此,必须在.前面加上\字符来对它进行转义。\也是一个元字符(metacharacter,表示这个字符有特殊含义,而不是字符含义本身)。来看下面这个例子。
找出na或sa开头的文件,不管它后面跟的是一个什么数字。
文本:
sales.txt
na1.txt
na2.txt
sa1.txt
sanatxt.txt
正则表达式:.a..txt
结果:
【sal】es.txt
【na1】.txt
【na2】.txt
【sa1】.txt
【sanatxt】.txt
分析:这个正则把na1.txt、na2.txt、sa1.txt找出来了,但是还找到了2个意料之外的结果。因为.a..txt这个正则中的.字符将与任意一个字符匹配。要想匹配.字符本身,那么需要使用\转义。把正则修改成.a.\.txt,则能够满足我们的需求。
注意:如果使用java,那么.a.\.txt这个正则表达式应该写成.a.\\.txt,因为\在java语言中也是一个转义字符。
四、总结
正则表达式通常简称为模式,它们其实是一些字符构成的字符串。这些字符可以是普通字符(纯文本)或元字符(有特殊含义的特殊字符)。这里介绍了如何使用普通字符和元字符去匹配单位字符。.可以匹配任何字符。\用来对字符进行转义。在正则表达式中,有特殊含义的字符序列总是以\字符开头。在接下来的文章中,我们将介绍如何匹配一组一组字符。
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools./regex/javascript
正则表达式在线生成工具:
http://tools./regex/create_reg
希望本文所述对大家正则表达式学习有所帮助。
# 正则表达式
# 匹配
# 单个字符
# 正则表达式匹配用户密码
# Javascript校验密码复杂度的正则表达式
# 手机号码
# 密码正则验证
# php password密码验证正则表达式(8位长度限制)
# js正则实现的密码框简单制作
# 还可以替换成自己想用得符号
# 密码强度检测函数(正则)
# 正则表达式教程之位置匹配详解
# 正则表达式教程之重复匹配详解
# 正则表达式教程之匹配一组字符详解
# JS正则匹配中文的方法示例
# 正则匹配密码只能是数字和字母组合字符串功能【php与js实现】
# 的是
# 是一个
# 特殊字符
# 中也
# 结果是
# 如何使用
# 它本身
# 都是
# 而不是
# 来了
# 也会
# 都在
# 多个
# 不出
# 下划线
# 中有
# 会在
# 要想
# 英文
相关文章:
定制建站价位费用解析与套餐推荐全攻略
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
网站制作服务平台,有什么网站可以发布本地服务信息?
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
如何在Windows服务器上快速搭建网站?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
如何在宝塔面板创建新站点?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
宝塔建站无法访问?如何排查配置与端口问题?
如何自定义建站之星模板颜色并下载新样式?
建站主机默认首页配置指南:核心功能与访问路径优化
网站代码制作软件有哪些,如何生成自己网站的代码?
建站之星与建站宝盒如何选择最佳方案?
如何在云虚拟主机上快速搭建个人网站?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
招商网站制作流程,网站招商广告语?
h5网站制作工具有哪些,h5页面制作工具有哪些?
建站上市公司网站建设方案与SEO优化服务定制指南
制作网站的模板软件,网站怎么建设?
建站之星免费版是否永久可用?
购物网站制作公司有哪些,哪个购物网站比较好?
如何选购建站域名与空间?自助平台全解析
宝塔建站助手安装配置与建站模板使用全流程解析
电商网站制作价格怎么算,网上拍卖流程以及规则?
如何快速搭建支持数据库操作的智能建站平台?
如何通过万网虚拟主机快速搭建网站?
寿县云建站:智能SEO优化与多行业模板快速上线指南
如何快速配置高效服务器建站软件?
黑客入侵网站服务器的常见手法有哪些?
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
如何在阿里云香港服务器快速搭建网站?
建站之星展会模板:智能建站与自助搭建高效解决方案
建站主机与服务器功能差异如何区分?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
上海网站制作开发公司,上海买房比较好的网站有哪些?
宝塔建站后网页无法访问如何解决?
建站之星如何配置系统实现高效建站?
css网站制作参考文献有哪些,易聊怎么注册?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
长沙企业网站制作哪家好,长沙水业集团官方网站?
微信h5制作网站有哪些,免费微信H5页面制作工具?
网站制作报价单模板图片,小松挖机官方网站报价?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
*请认真填写需求信息,我们会在24小时内与您取得联系。