用正则匹配单个字符的详细解析

这次给大家带来用正则匹配单个字符详细解析,用正则匹配单个字符的注意事项有哪些,下面就是实战案例,一起来看一下。

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

注:在所有例子中正则表达式匹配结果包含在源文本中的【和】之间,有的例子会使用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语言中也是一个转义字符。

四、总结

正则表达式通常简称为模式,它们其实是一些字符构成的字符串。这些字符可以是普通字符(纯文本)或元字符(有特殊含义的特殊字符)。这里介绍了如何使用普通字符和元字符去匹配单位字符。.可以匹配任何字符。用来对字符进行转义。在正则表达式中,有特殊含义的字符序列总是以字符开头。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

用php与js实现正则匹配数字和字母组合的密码

在JQ中正则验证不能含有中文的方法

以上就是用正则匹配单个字符的详细解析的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2777755.html

(0)
上一篇 2025年3月8日 15:13:15
下一篇 2025年3月8日 15:13:26

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Linux中使用正则表达式的详细介绍

    这次给大家带来Linux中使用正则表达式的详细介绍,Linux中使用正则表达式的正则表达式有哪些,下面就是实战案例,一起来看一下。 字符匹配:         .  :匹配任意单个字符         [] :匹配指定范围内的任意单个字符;…

    编程技术 2025年3月8日
    200
  • 正则表达式字符类的详细介绍

    这次给大家带来正则表达式字符类的详细介绍,使用正则表达式字符类的注意事项有哪些,下面就是实战案例,一起来看一下。 正则表达式字符类加深理解:一.基本概念:字符类相对来说是比较简单的,但是也有可能由于理解不够深入或者大意造成一些误区,下面再来…

    编程技术 2025年3月8日
    200
  • 在Ajax里怎么传递特殊字符数据

    这次给大家带来在Ajax里怎么传递特殊字符数据,在Ajax里传递特殊字符数据的注意事项有哪些,下面就是实战案例,一起来看一下。 问题描述 如下,对含有特殊字符的text进行JSON封装,通过Ajax传递, var data = {&#822…

    编程技术 2025年3月8日
    200
  • 使用Ajax的详细解析

    这次给大家带来使用Ajax的详细解析,使用Ajax的注意事项有哪些,下面就是实战案例,一起来看一下。 Ajax 简介 Ajax被认为是(Asynchronous(异步) JavaScript And Xml的缩写)。现在,允许浏览器与服务器…

    2025年3月8日
    200
  • vue-cli 3.0的详细介绍

    这次给大家带来vue-cli 3.0的详细介绍,使用vue-cli 3.0的注意事项有哪些,下面就是实战案例,一起来看一下。 环境安装 全新版本的脚手架、逼格非常高、 记住这个名字 @vue/cli ,对就是这个 你npm 或者yarn 安…

    2025年3月8日 编程技术
    200
  • webpack v4 从dev到prd的详细步奏

    这次给大家带来webpack v4 从dev到prd的详细步奏,webpack v4从dev到prd的注意事项有哪些,下面就是实战案例,一起来看一下。 概述 本月迎来了 v4 正式版的发布,本文用于学习新特性和总结开发必用plugin &a…

    2025年3月8日 编程技术
    200
  • SJ实时监控文本框的输入字符数的方法

    这次给大家带来SJ实时监控文本框的输入字符数的方法,SJ实时监控文本框的输入字符数的注意事项有哪些,下面就是实战案例,一起来看一下。 需求:实时监控文本输入框的字数,并加以限制 1、实时监控当前输入字数,直接使用onkeyup事件方法,给输…

    编程技术 2025年3月8日
    200
  • JS遍历DOM树详细介绍

    这次给大家带来JS遍历DOM树详细介绍,使用JS遍历DOM树的注意事项有哪些,下面就是实战案例,一起来看一下。 一 介绍 遍历文档树通过使用parentNode属性、firstChild属性、lastChild属性、previousSibl…

    2025年3月8日
    200
  • 常用的js.window属性及方法(详细介绍,图文教程)

    下面是我给大家整理的js.window属性及方法,有兴趣的同学可以去看看。 window.opener.location.reload()      这个方法在有些IE浏览器(比如安全设置高)的情况下,会弹出一个确认对话框,提示是不是要重新…

    编程技术 2025年3月8日
    200
  • js装饰设计模式学习心得(详细解答)

    本片文章给大家分享一下作者学习javascript装饰设计模式后的心得以及要点分享,有兴趣的朋友参考下。 装饰设计模式 每种设都有其独特的应用场景和解决问题的方式, 装饰设计模式是动态的为对象添加新的功能, 是一种用于代替继承的技术,无需通…

    2025年3月8日
    200

发表回复

登录后才能评论