开发工具与关键技术:MVC和RegexBuddy4
作者:郑健鹏
撰写时间:2019年4月17日
今天我们来认识正则表达式的基本字符,如要编写基本的正则代码则需要RegexBuddy 4之类的软件。
什么是正则表达式呢?
正则表达式:又称规则表达式,英文名为Regular Expression,
在代码中常简写为regex、regexp或RE
正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本
通俗理解:正则表达式是用于进行文本匹配的工具
这是一个最简单的正则表达式
例:him,history,high,hi 在这个字符串中匹配出hi
正则表达式:hi
若要精确的匹配出hi,正则表达式:\bhi\b
\b是正则表达式规定的一个特殊代码,我们把它叫做元字符,
单词的开头或结尾,也就是单词的分界处,它只匹配一个位置
元字符的讲解
代码 说明
. 匹配除换行符以外的任意字符
\w 匹配数字或字母或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
字符转义’’:如果你想查找元字符本身的话,
比如你查找.,或者*,就出现了问题:你没法指定它们,
因为它们会被解释成其它的意思。这时你就必须使用\来
取消这些字符的特殊意义。因此,你应该使用.和*。
当然,要查找\本身,你也得用\.
就比如\w如果要查找这个字符的话前面必须再加上一个\,如果不加上会被解释成其它的意思
常用的限定符(重复)
代码 说明
-
重复零次或更多次
-
重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
问题1:如何匹配下列字符串A-G的大写字符?
字符串:A正则表v达r式的“鼻祖”AS或许可一SF直y追FD溯到oS科学家对C
人类S神经F系统工S作原t理的E早中期p研究
正则表达式:[A-G]
\d 等价于 [0-9] [指定范围]
问题2:写一个正则表达式用于匹配几种格式的电话号码
例如(010)88886666,或022-22334455,或02912345678
正则表达式:(?0\d{2}[)-]?\d{8}
反义
代码/语法 说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
解释:<a[^>]+> 匹配用尖括号括起来的以a开头的字符串 dt>wer
以上正则表达式的知识引用屈老师讲解的知识