在编写处理字符串的程序时,经常会用查找符合某些复杂规则的字符串的需要。
正则表达式就是用于描述这些规则的工具,换句话说,正则表达式就是记录文本规则的代码,但它不是变成语言
正则表达式到底有什么用?
文本中Regular的文本不小心继承了Reguler
有一个?
有多个?
当然,正则表达式的文本用途无法穷尽,因为文本的存在实在是台普遍了、
现状:很多计算机用户和开发人员对如何使用正则表达式来操作文本确实一知半解,甚至是毫无概念,我们本章节的设置就是为着力改变这种局面
中文
正则表达式或正则匹配
英文
Regular Experssion,Regex、Regexp
意义:
无论对于普通电脑用户还是开发人员,特别是经常操作文本或者字符串查找、替换的人员来说,正则表达式将是不二之选。
在正则表达式中拥有一套自己的语法规则
常见语法包括
字符匹配
重复匹配
字符定位
转义匹配
其他高级语法(字符分组,字符替换和字符决策)
原样匹配
原样匹配的时候,采用的都是不变的直接字符,所见即所得!
元字符匹配
采用元字符可以匹配一类字符,元字符可以是一个单独的字符,也可以是一对字符(前一个字符通常是反斜杠)
d 匹配数字(0-9)
D 匹配非数字
w 匹配任意单字符
W 匹配非单字符
s 匹配空白字符
S 匹配非空字符
. 匹配任意字符
[...] 匹配括号中的任意字符
^ 匹配字符串的开始
$ 匹配字符串的结尾
匹配一个单词的边界
B 匹配一个单词的非边界部分
转义字符匹配
如果想查找元字符本身,就必须采用配合对应元字符来取消特定字符
如果想查找或. 就应该采用\或.
限定字符
限定字符又叫重复描述字符,表示一个字符要出现的字数
{n} 匹配N次字符
{n,} 匹配n次和n次以上字符
{n,m} 匹配n次以上m次以下字符
? 匹配0或1次
+ 匹配一次或者多次
* 匹配0次以上
[^...] 匹配非括号字符 如[0-5] 除了0-5 其他都可以match
分组
使用(123){2} 就匹配123123
删除空行:
程序结环到replace mode
匹配汉字
[u4e00-u9fa5]