什么是正则表达式?
用一个字符串来描述一个特征,然后去验证另外一个字符串是否符合这个特征。如验证输入的邮箱格式是否规范;查找字符串;等。
简单匹配
pattern | describe |
---|---|
? | 0-1个字符 |
* | 0-多个字符 |
+ | 1-多个字符 |
. | 除了换行符的所有字符 |
{n} | 匹配n个字符 |
{m,n} | 匹配m-n个字符 |
{n,} | 匹配n-多个字符 |
\d | |
{0-9} | 数字 |
\w | 字母,下划线 |
\W | 非数字和下划线 |
{a-zA-Z} | 字母 |
\s | 空格,制表符,换页符等空白字符的任意一个 |
[aqz^] | 匹配’a’,’q’,’z’,’^’字符 |
^ | 匹配开头 |
$ | 匹配结尾 |
匹配(Python 为例)
- 匹配电话号码
1
2
3
4
5
6
7
8
9import re
pattern = '^0\d{2,3}-?\d{7,8}$'
str = '010-1234567'
result = re.match(pattern,str)
print(result)
# result
# <re.Match object; span=(0, 12), match='010-22301889'> - 匹配包含的所有特定字符
1
2
3
4
5
6
7
8
9import re
pattern = r'\wa\w'
str = 'fapjachahahhac'
result = re.findall(pattern, str)
print(result)
# result:
# ['fap', 'jac', 'hah', 'hac'] - 拆分:
1
2
3
4
5
6
7
8
9import re
pattern = r'\s+'
str = 'hello Tony , Sweet Wednesday'
result = re.split(pattern, str)
print(result)
#result:
# ['hello', 'Tony', ',', 'Sweet', 'Wednesday']
TonyChenn
2018.11.21
2018.11.21