python -正则表达式(常用源字符)
正则表达式的概念就不啰嗦了,此笔记用来摘录一些常用的正则表达式的应用
1.点号.
一个点号可以代替除了换行符以外的任何一个字符,包括但不限于英文字母,数字,汉字,英文标点符号和中文标点符号.
抠重点,用号代替的是任何一个字符
示例:
你好啊
你好好啊
你好好好好啊
如果要匹配"你好好啊" 用点号表达式,则需要表示成:"你..啊"
2.星号 "*"
一个星号可以表示它前面的一个子表达式(普通字符,另一个或几个正则表达式符号) 0次到无限次.
示例:
你笑起来真好看
你笑起来真好看看看
你笑起来真好看看看看看
匹配:"你笑起来真好看*" 这样就能把上面的三句全部匹配出来
思考:那么如果星号前面是点号呢 如上:用表达式 你.*看
3.问号?
问号表示它前面的子表达式0次或者1次.
例如:
笑起来.
笑起来哈.
在汉字"来"和中文句号之间有0个或者1个哈字, 表达式 "笑起来哈?." 能够匹配以上两种
问号最大的用处是与点号和星号配合起来使用,构成".*?".通过正则表达式来提取信息的时候,用到最多的也是这个组合.
下面的所有字符串:
你笑起来活动啊哈
你十多个覅好哦工哈
你dhglajwogh哈
都可以用表示表示式 如.*?哈
4.反斜杆 \
反斜杠在正则表达式里面不能单独使用,需要和其他的字符配合使用来把特殊符号变成普通符号,把普通符号变成特殊符号.因为在正则表达式中很多符号用来作为源字符用了(比如星号,点号),那么如果需要配置这些字符本身怎么办?
例如有下面一段字符:
我的密码是*123456*不包括外层星号
那么怎么才能匹配出来密码部分数字呢? 如果用表达式 " 我的密码是*.**不包括外层星号"来表示,就会乱的,因此需要用转义后的字符来处理,如:
" 我的密码是\*.*\*不包括外层星号" \*用来表示*号字符
其他符号也类似,常用的转义字符如下:
转义字符 | 字符意义 |
\n | 换行符 |
\t | 制表符 |
\\ | 普通的反斜杠 |
\' | 单引号 |
\" | 双引号 |
\d | 数字 |
5.数字\d
这个比较好理解,\d 代表任意一个数字0-9,要匹配多个数字的话就要用多个\d
例如:
我的电话是1688结尾的
我的电话是8899结尾的
--- 表达式:我的电话是\d\d\d\d结尾的
当然也可以结合*号来使用:我的电话是\d*结尾的
6.小括号()
小括号可以把括号里面的内容提取出来.
前面讲到的符号仅仅能让正则表达式表示一串字符串.但是字符串如果要从一段字符串中提取出一部分的内容应该怎么办?这个时候就需要小括号了
例如:
我的电话是:13612345678请保存.
只需要提取其中的电话号码就可以这么表示--- :(.*?)请
这样提取出来的结果就是电话号码
小结:助记
点号--匹配任意一个字符
星号--匹配0个或多个字符
问号--表示其前面的表达式匹配0次或一次
\d--匹配任意数字
括号--表示要提取的内容
.*? -- 常用匹配中间任意字符
画面: 点起一盏灯在繁多的星空下感受到学问很单薄,反对邪恶的声音就像雨天水滴到数人衣服上一样普遍,小小年纪的阔佬有钱了想取什么就取什么;
点心常常是那些嘘寒问暖的人准备的.