正则表达式知识总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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] 更简单通用些
范围为你所操作的范围,然后选择替换即可。