正则表达式
开发工具与关键技术 :RegexBuddy
撰写时间:2019.5.13
下面来说一下正则表达式
正则表达式是用来匹配文本的工具,有着匹配、搜索、查找某些复杂规则的字符串等的功能。
首先是一些简单的:
先是一些最简单的元字符,如下图所示,再在下面演示几个就可以理解了。
一是“.”这个英文状态下的句号,如上面的解释它是匹配换行符以外的任意字符。就是除了换行符,其他所有的都可以匹配,比如下图,这个是用正则表达式的正则表达式编辑工具RegexBuddy,现在这里里面是字符“.”的匹配,由此可见句号后面的换行符没有匹配到。
第二个“\w”一个斜杠加小写的w(注意,一定要是小写的w,不然它的意义就是相反的),
这个“\w”就是匹配汉字、字母、数字、下划线。也就是除了这四个类型,不能匹配其他类型的。看下面有一些它里面不能匹配的,就没有匹配到。
再是一个\b,匹配单词的开始或结尾。比如要在him,history,high,hi字符串中匹配出hi,要在这里面精准的匹配出hi这个字符,就需要这样写:\b hi \b,一对\b里面写hi,如下第一张图所示,对比,如果只写一个\b再加hi,它就会把所有是hi的字符都匹配到,如下第二张图所示
接下来就是与上面一些意思相反的匹配字符,下面的钱四个与上面的写法不同的就是大小写的区别,然后意思也就是反过来的,那这里就说一下下面的最后两个[x]和[aeiou]。
代码/语法 说明
\W 匹配任意不是字母,数字,下划线,汉字的 字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
[^x]匹配除了x以外的任意字符,就比如要匹配一串除了h的字符串,如下图所示
[aeiou]匹配除了aeiou这几个字母以外的任意字符,这几个字母也就是五个元音字母,这个的效果是跟[x]一样的
再接下来就是一个转义字符“\”,比如你想要找到元字符本身,如这些:.、*、+ 如果直接输入这些就会出现问题,在这里就要用到转义字符,如下图,我们要找到\本身就输入:\
再对比一下如果直接输入一个,就匹配不到了。