正则表达式知识总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

正则表达式知识总结

一简单举例认识正则表达式

1名词解释:正则表达式就是用于描述这些规则的工具,即记录文本规则的代码

注意事项:处理正则表达式的工具会提供一个忽略大小写的选项

eg:\bhi\b

解释:\b是正则表达式规定的一个特殊代码,为元字符(metacharacter),代表单词的开头或结尾,为分界处,是一个位置的分界点

eg:查找hi后不远处一个lucy,写法为:\bhi\b.*\blucy\b

eg:"."为元字符,匹配不换行的任意字符。"*"为元字符,代表不是字符,也不是位置,而是数量---是指*前面的内容可以连续重复的使用任意次数已使整个表达式得到匹配。*连在一起,意味着任意数量的不包含换行的字符,

eg:0\d\d-\d\d\d\d\d\d\d\d

解释:以0开头,然后是两个数字,中间位一个连字符"-",最后为8个数字简写为:

0\d{2}-\d{8}表示连续重复多少次;

\s 匹配任意的空白符包括空格,制表符(tab)换行符中文全角空格

\w匹配字母或数字或下划线或汉字等

eg:\ba\w*\b解释:已字母(\b)a开头的单词。然后是(\w*)任意的字母,数字,下划线,最后为单词的结束处

eg:\d+

解释:匹配一个或更多连续的数字。这里的+与*是类似的元字符,不同点:+匹配一个或更多连续的数字;*匹配任意的次数。

eg:\b\w{6}\b

解释:匹配6个字符的单词

^匹配字符串的开始

$匹配字符串的结束,这两个元字符在验证输入的内容时非常有用

eg:要求输入5到12个数字:^{5,12}$

注意事项:政策表达式的处理工具还有个处理多行的选项

二字符转义,特指"\"

如果要查元字符本身,就必须使用转义符例如:\\,\*,\$等

eg:c:\\windows解释:匹配的是c:\windows

eg:deerchao\.net解释:匹配的是

三重复

匹配重复方式有:* + {5} {2,12}{1,}

二测试正则表达式(.Net Framework4.0)

/tools/zhengze.html

/^-?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/

^匹配字符串开头

匹配减号,问号表示减号是可选的,可以没有

\d+匹配任意位的数字

| 表示‘或’关系

\d{1,3} 匹配1-3位数字

:,\d{3})+ 匹配一个逗号加一个3位数字,+号表示可以重复多个:\.\d+)?匹配一个小数点和多位数字

$匹配结尾

综合起来,这个正则表达式用于匹配数字

可以是整数,也可以是小数

12345和12345.6789都可以

可以是负数也可以是正数

-12345和-12345.6789也行

整数部分还可以有逗号做分割符

12,345,678,901.123456也可以匹配

当然

-12,345,678,901.123456也可以

等价:

等价是等同于的意思,表示同样的功能,用不同符号来书写。

?,*,+,\d,\w 都是等价字符

?等价于匹配长度{0,1}

*等价于匹配长度{0,}

+等价于匹配长度{1,}

\d等价于[0-9]

\w等价于[A-Za-z_0-9]。

常用运算符与表达式:

^ 开始

()域段

[] 包含,默认是一个字符长度

[^] 不包含,默认是一个字符长度

{n,m} 匹配长度

. 任何单个字符(\. 字符点)

| 或

\ 转义

$ 结尾

[A-Z] 26个大写字母

[a-z] 26个小写字母

[0-9] 0至9数字

[A-Za-z0-9] 26个大写字母、26个小写字母和0至9数字

,分割

.

分割语法:

[A,H,T,W] 包含A或H或T或W字母

[a,h,t,w] 包含a或h或t或w字母

[0,3,6,8] 包含0或3或6或8数字

语法与释义:

基础语法 "^([]{})([]{})([]{})$"

正则字符串 = "开始([包含内容]{长度})([包含内容]{长度})([包含内容]{长度})结束"

?,*,+,\d,\w 这些都是简写的,完全可以用[]和{}代替,在

(?:)(?=)(?!)(?<=)(?

初学者可以忽略?,*,+,\d,\w一些简写标示符,学会了基础使用再按表自己去等价替换

实例:

字符串;tel:086-0666-88810009999

原始正则:"^tel:[0-9]{1,3}-[0][0-9]{2,3}-[0-9]{8,11}$"

速记理解:开始 "tel:普通文本"[0-9数字]{1至3位}"-普通文本"[0数

字][0-9数字]{2至3位}"-普通文本"[0-9数字]{8至11位} 结束"

等价简写后正则写法:"^tel:\d{1,3}-[0]\d{2,3}-\d{8,11}$" ,简写语法不是所有语言都支持。

替换技巧

编辑

实例目录

【1】正则表达式应用——替换指定内容到行尾

【2】正则表达式应用——数字替换

【3】正则表达式应用——删除每一行行尾的指定字符

【4】正则表达式应用——替换带有半角括号的多行

【5】正则表达式应用——删除空行

【6】正则表达式应用——实例应用

应用实例

【1】正则表达式应用——替换指定内容到行尾

原始文本如下面两行

abcaaaaa

123 abc 444

希望每次遇到“abc”,则替换“abc”以及其后到行尾的内容为“abcefg”

即上面的文本最终替换为:

abcefg

123 abcefg

解决:

① 在替换对话框,查找内容里输入“abc.*”,替换内容输入为“abcefg”

② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮

其中,符号的含义如下:

“.” =匹配任意字符

“*” =匹配0次或更多

注意:其实就是正则表达式替换,这里只是把一些曾经提出的问题加以整理,单纯从正则表达式本身来说,就可以引申出成千上万种特例。

【2】正则表达式应用——数字替换

希望把

asdadas123asdasdas456asdasdasd789asdasd

替换为:

asdadas[123]asdasdas[456]asdasdasd[789]asdasd

在替换对话框里面,勾选“正则表达式”复选框;

在查找内容里面输入“([0-9])([0-9])([0-9])”,不含引号

“替换为:”里面输入“[\1\2\3]”,不含引号

####备注####:查找([0-9]+)替换:[\1] 更简单通用些

范围为你所操作的范围,然后选择替换即可。

相关文档
最新文档