当前位置:  编程技术>其它

正则表达式 学习资料整理

    来源: 互联网  发布时间:2014-10-15

    本文导语:  常用正则表达式 整理篇http://www./article/17355.htm 正则表达式高级学习技巧http://www./article/9229.htm 1.正则表达式简介 正则表达式(Regular expression,简写为Regexes)是一种用来操作和检验字符串数据的强大工具。它相当与一串特殊的字...

常用正则表达式 整理篇
http://www./article/17355.htm

正则表达式高级学习技巧
http://www./article/9229.htm

1.正则表达式简介

正则表达式(Regular expression,简写为Regexes)是一种用来操作和检验字符串数据的强大工具。它相当与一串特殊的字符,用它可以转换成算法,对文本进行匹配等操作。

       事实上正则表达式有其自身的一套语法,这种语法对于初学者来说显得有些晦涩难懂。尤其是其构造比较困难,称为很多入门者的障碍。但当掌握后却可以轻易的解决以前不容易解决的很多文本类问题,如验证提取等。

其常用场合有如下三种:

Ø        测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。

Ø        替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。

Ø        根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。      

2.正则表达式基础语法

2.1匹配不同类型的字符

 

字符类

匹配的字符

d

匹配一个数字字符。等价于 [0-9]。

D

匹配一个非数字字符。等价于 [^0-9]。

w

匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。

W

匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。

s

匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ fnrtv]。

S

匹配任何非空白字符。等价于 [^ fnrtv]。

.(点号)

任一字符

[...]

括号中的任一字符

[^…]

非括号中的任一字符

2.2定位控制字符

^

其后的模式必须在字符串的开始处,如果是多行则在任一行的开始C#需要设定Multiline标志

$

前面的模式必须在一行的末尾,如果是多行,则在任意行的末尾

A

前面的模式必须在字符串的开始处;多行标志被忽略

z

前面的模式必须在字符串的末尾处,多行标志被忽略

Z

前面的模式必须位于字符串的末尾或位于换行符前

b

匹配一个单词字符的开始,单词字符是[a-zA-Z0-9]中的一位

B

匹配一个非单词边界的位置, 不在一个单词的开始

2.3指定重复字符

{n}

匹配前面的字符n次

{n,}

匹配前面的字符最少n次

{n,m}

匹配前面的字符n至m次

?

匹配前面的字符0次或1次

+

匹配前面的字符至少1次

*

匹配前面的字符至少0次

2.4特殊控制类

|

指定字符替换,即该位置可以是|两边的任一个表达式

2.5 特殊字符转义序列

\

匹配””

.

匹配“.”

*

匹配“*”

(

匹配“(”

)

匹配”)”

?

匹配“?“

+

匹配“+“

|

匹配“|“

{

匹配“{“

}

匹配“}“

^

匹配“^“

$

匹配“$“

n

匹配换行符

r

匹配回车

t

匹配Tab键

v

匹配垂直制表符

f

匹配换页符

nnn

匹配一个三位八进制数指定的ASCII字符,如103匹配C

xnn

匹配一个二位16进制数指定的ASCII字符,例如x43匹配C

unnnn

匹配一个4位16进制数指定的Unicode字符

cV

匹配一个控制字符,(如复制Ctrl+C)

2.6正则表达式分组、替换、反向引用等高级应用

以上只是正则表达式的基础部分,从这里开始才算真正开始正则表达式之旅。

²       分组

分组技术可以匹配在一个组中的所有字符,用()来表示,是下面两个技术的基础所在。“()“又称捕获符号。

1.    捕获:()

例子:ABC1EDF2UU

匹配组表达式:([A-Z]{3})d  --匹配3个连续大写字母和一个数字

匹配结果:1.ABC1,2.EDF2

如果用C#中的group,则为ABC,EDF。因为group搜集的是匹配组的内容。
2.非捕获(?:)

使用了非捕获就说明该()中的内容将不作为捕获的组返回,而和其它表达式共同构成匹配项返回。也就是捕获组将不存在。

例:1AF3EDC

匹配表达式:(?:d|[A-Z])w  --匹配一个数字或字母加一个任意的字符。

匹配结果:1.1A 2.F3 3.ED

没有组被捕获

2.    通过名称捕获(?)

定义了名称捕获的组可以在反向匹配中运用名称进行反向引用而不需要再使用数字进行反向捕获。注意组名区分大小写!

²       替换

替换,顾名思义,是将匹配的字符替换成其他指定的字符形式。这个功能是在分组的基础上的(当然或许可以单独存在,但是那样匹配的功能显然不够强大)。在这里有一个技巧是使用附加的匹配字符控制匹配内容。

$group

用group指定的组号进行替换

${name}

替换由


    
 
 

您可能感兴趣的文章:

  • Perl 正则表达式之角色化记忆
  • js正则表达式之RegExp对象之compile方法 编译正则表达式
  • Linux c++ boost库正则表达式用法
  • 正则表达式 表示 非指定字符串开头的正则
  • Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法
  • 正则表达式问题,使用正则表达式找出指定字符串并替换?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 正则表达式概述 什么是正则表达式 .
  • JS 正则表达式的相关方法(正则学习笔记1)
  • jQuery中的正则表达式分析 正则基础
  • java 正则表达式基础,实例学习资料收集大全 原创
  • 哪些命令可以使用正则表达式
  • 常用正则表达式及评注-学习正则必备
  • (菜鸟飞飞)问个正则表达式的问题
  • 向大家推荐一个收集整理正则表达式的网站
  • 正则表达式的问题
  • 关于正则表达式匹配问题
  • Python 匹配任意字符(包括换行符)的正则表达式写法
  • php 正则 不包含某字符串的正则表达式
  • Java正则表达式 reb4j
  • 大虾,请问谁有正则表达式的资料?谢谢!
  • javascript的正则表达式学习资料复习
  • C#中的正则表达式 学习资料
  • 正则表达式学习参考 正则入门学习资料
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • c#正则过滤图片标签 asp.net正则过滤的例子
  • 正则匹配后面非指定字符的正则 原创
  • java使用正则表达校验手机号码示例(手机号码正则)
  • PHP html标签正则替换并可自定义正则规则
  • python正则表达式去掉数字中的逗号(python正则匹配逗号)
  • 正则表达式口诀_学习正则的朋友值得一看
  • Javascript里的两种使用正则的方法
  • 常用正则 常用的C#正则表达式
  • 寻求正则表达试
  • 学习IP地址的正则表达式
  • asp.net正则表达式提取中文的代码示例
  • 正则表达式中使用变量赋值
  • 用正则表达式来表示中文
  • java正则表达式验证函数
  • linux下有什么函数可以处理正则表达式?
  • emacs里空行的正则表达式如何写?
  • 正则式 ^[^ ](.*[^ ])?$ 的含义
  • 正则式如何只匹配一个汉字?
  • 关于sed的正则表达式
  • 正则表达式小疑问


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3