正则表达式是由普通字符(例如字符a ~ z)及特殊字符(称为元字符)组成的匹配模式字符串。
普通字符 非打印字符 特殊字符 次数限定符 贪婪与非贪婪限定符 定位符 选择与分组 向后引用 |
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
普通字符 |
||||||||||||||||||||||||||||||||||||||||||||||||
普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。 |
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
非打印字符 |
||||||||||||||||||||||||||||||||||||||||||||||||
除以上的普通字符外,还有少量的非打印字符,非打印字符使用转义符号 "\"表示。如下表: |
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
特殊字符 |
||||||||||||||||||||||||||||||||||||||||||||||||
一些有特殊含义的字符,通常都是正则表达式语法中规定的匹配字符。如下表: |
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
示例如: |
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
次数限定符 |
||||||||||||||||||||||||||||||||||||||||||||||||
次数限定符即限定匹配某一字符表达式的次数,用来指定正则表达式的一个给定组合必须要出现多少次才能满足匹配。 |
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
贪婪与非贪婪限定符 |
||||||||||||||||||||||||||||||||||||||||||||||||
贪婪限定符会尽可能多的匹配文字,只有在它们的后面加个一个"?"就可以实现非贪婪或最小匹配 |
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
例如,你可能要搜索一个HTML文档来查询一处包含在H1标记中的章节标题。在文档中该文字可能具有如下形式: |
||||||||||||||||||||||||||||||||||||||||||||||||
<H1> Chapter 1 - Introduction to Regular Expressions </H1> |
||||||||||||||||||||||||||||||||||||||||||||||||
下面的表达式匹配从开始的小于号(<)到H1标记结束处的大于号之间的所有内容: |
||||||||||||||||||||||||||||||||||||||||||||||||
<.*> |
||||||||||||||||||||||||||||||||||||||||||||||||
如果所要匹配的就是开始的H1标记,则下述非贪婪地表达式就只能匹配到<H1>: |
||||||||||||||||||||||||||||||||||||||||||||||||
<.*?> |
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
定位符 |
||||||||||||||||||||||||||||||||||||||||||||||||
定位符用来描述匹配到的字符串或单词的边界。定义符可以将一个正则表达式固定在一行的开始和结束,也可以创建只在单词内或只在单词的开始或结尾处出现的正则表达式。 |
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
示例如下: |
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
替换与分组 |
||||||||||||||||||||||||||||||||||||||||||||||||
替换使用 |字符来允许在两个或多个替换选项之间进行选择。例如,可以扩展章节标题正则表达式,以返回比章标题范围更广的匹配项。但是,这并不象您可能认为的那样简单。替换匹配 |字符任一侧最大的表达式。 您可能认为,下面的表达式匹配出现在行首和行尾、后面跟一个或两个数字的 Chapter 或 Section: |
||||||||||||||||||||||||||||||||||||||||||||||||
^Chapter|Section [1-9][0-9]{0,1}$ |
||||||||||||||||||||||||||||||||||||||||||||||||
很遗憾,上面的正则表达式要么匹配行首的单词 Chapter,要么匹配行尾的单词 Section及跟在其后的任何数字。如果输入字符串是 Chapter 22,那么上面的表达式只匹配单词 Chapter。如果输入字符串是 Section 22,那么该表达式匹配 Section 22。通过在上面的正则表达式的适当位置添加括号,就可以使该正则表达式匹配 Chapter 1 或 Section 3: |
||||||||||||||||||||||||||||||||||||||||||||||||
^(Chapter|Section) [1-9][0-9]{0,1}$ |
||||||||||||||||||||||||||||||||||||||||||||||||
使用圆括号同时会有一个副作用,就是相关的匹配会被缓存。为了消除缓存,此时可以将"?:"放在第一个选项前,用来消除这种副作用。其中"?:"是非捕获元之一,还有两非捕获元是 "?=" 和 "?!",这两个还有更多的含义:
可以在正则表达式模式圆括号内部的前面使用"?:"来防止存储该匹配供后续使用。对上面所示正则表达式的下述修改提供了免除子匹配存储的相同功能: |
||||||||||||||||||||||||||||||||||||||||||||||||
^(?:Chapter|Section) [1-9][0-9]{0,1}$ |
相关推荐
本资源文件是我自己总结的,其中包括5个类,这5个类的代码基本...用正则表达式替换字符串内容,使用正则表达式切割字符串,字符串匹配,将字符串“<msg>ha>ve modif”中的>替换为>将<替换为<将&替换为2. 等等情况!
如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。 许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理...
匹配3个连续的相同字符的正则表达式写法。和验证是否是连续数字或字母的js写法。
position :起始位置,从第几个字符开始正则表达式匹配(默认为1) occurrence :标识第几个匹配组,默认为1 modifier :模式(‘i’不区分大小写进行检索;’c’区分大小写进行检索。默认为’c’) SELECT REGEXP_...
易语言正则表达式类匹配中文源码,正则表达式类匹配中文,创建,取正则文本,替换,取匹配数量,取匹配文本,取子匹配文本,取子匹配数量
使用正则表达式检测字符串中重复出现的词,程序完全可以运行,大家可以参考
使用正则表达式匹配字符串数据PPT学习教案.pptx
一个用于正则匹配检查的工具,用于使用正则表达式提取字符串!
正则表达式(regular expression)是一个描述字符模式的对象。JavaScript的RegExp类表示正则表达式,而String和RegExp都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的函数。 ECMAScript v3对JavaScript...
正则表达式,是一个强大的匹配字符运算语言。
正则表达式的语法很令人头疼,即使对经常使用它的人来说也是如此。工作之余整理正则表达式的匹配规则,希望大家喜欢。
关键字:正则表达式 模式匹配 Javascript 摘要:收集一些常用的正则表达式。 正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番。我将一些常用的表达式收藏在这里...
java 利用正则表达式从字符串中提取省、市、区、镇、乡等区域名称(包含少数民族地区),支持地址中无省,无市,无县情况。
正则表达式在。net下的转义符意义 正则表达式是正则表达式引擎尝试匹配输入文本的一种模式。 模式由一个或多个字符文本、运算符或构造组成
kettle 根据系统时间加正则表达式动态匹配获取多个文本文件
正则表达式是一个特殊的字符序列,它能方便的检查一个字符串是否与某种模式匹配,利用正则可以快速准确的对邮箱进行校验。 任务 邮箱验证 任务知识点 正则表达式概念与语法 常用匹配规则 正则表达式检索与替换 知识...
通过匹配特定单词、字符和模式,读者很快就可以自己动手使用正则表达式匹配、提取和转换文本。正则表达式是程序员必备的强大工具,得到了各种Unix实用程序,以及Perl、Java、JavaScript、C#等编程语言的支持。读完...
主要介绍了python使用正则表达式匹配字符串开头并打印的方法,结合实例形式分析了Python基于正则表达式操作字符串的相关技巧,需要的朋友可以参考下
一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。...正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.发给地方非郭德纲儿童热让他而特
split函数按照空格拆分,兼容全角空格、半角空格