Python验证的50个常见正则表达式
正则表达式是一种用于描述字符串模式的语言,可以用于匹配、查找、替换和割字符串。在Python中,模块提供了正表达式持方便进行字符串的处理。本文将详细解Python验证的50个常见正则表达式,包括正则表达语法、模块的常用函数以及示例说明。
正则表达式语法
正则表达式语法是一组特殊字符符号用于描述字符串模式。下面是一些常用正则表达式语法:
.
:匹配任意字符,除了换行符。*
:匹配前面的字符零次或多次。+
:匹配前面的字符一次或多次。?
:匹配前面的字符零次或一次。^
:匹字符串的开头。$
:匹配字符串的结尾。[]
:匹配括号内的任意一个字符。()
:标记一个子表达的开始和结束位置。|
:匹配两个或多个正则表达式之一。
re模块的常用函数
re模块提供了多个函数用于正则达式的处理,下面是一些常用的函数:
re.search(pattern, string, flags=0)
:在字符串中查找匹配项,返回一个Match对象。re.match(pattern, string, flags=0)
:从字符串的开头开始匹配,返回一个Match对象。re.findall(pattern, string, flags=0)
:查找字符串中所有匹配项,返回一个列表。re.sub(pattern, repl string, count=0, flags=0)
:用指定的字符串替换匹配项,返回替换后的字符串。re.split(pattern, string, maxsplit=0, flags=0)
:根正则表达式分割字符串,返回一个列表。
示例说明
下面是两个例说明,演示何使用Python正则表达式进行字符串的处理。
示例1:匹配邮箱地址
import re
# 定义正则表达式
pattern = r'\w+@\w+\.\w+'
# 定义字符串
string = 'My email is example123@gmail'
# 使用re.search()方法查找匹配项
match = re.search(pattern, string)
# 输出匹配
if match:
print(match.group())
else:
print('No match')
`
在这个示例中,我们定义了一个正则表达`\w+@\w+\.\w+`,用于匹配邮箱地址。然后,我们定义了一个字符串`My email is example123@gmail.com`,其中包含邮箱地址。最后,我们使用re.search()方法查找匹配项,并输出匹配结果example123@gmail.com`。
### 示例2:匹配HTML标签
```python
import re
# 定义正则表达式
pattern = r'<.*?>'
# 定义字符串
string = '<p>This is a paragraph.</p>'
# 使用re.findall()查找匹配
matches = re.findall(pattern, string)
# 输出匹配结果
for match in matches:
print(match)
在这个示例中,我们定义一个正则表达式<.*?>
,用于匹配HTML签。后我们定义了一个字符串<p>This is a.</p>
,其中包含HTML标签。最后,我们使用re.findall方法查找所有匹配项,并输出匹配结果<p>
和</p>
。
50个常见正则表达式
下面是50个常见的Python验证正则表达式包括正则表达式语法、re模块的常用以及示例说明。
1. 匹配整数
import re
# 定义正则表达式
pattern = r'^[+-]?\d+$'
# 定义字符串
string = '123'
# 使用re.match()方法查找匹配项
match = re.match(pattern, string)
# 输出匹配结果
if match:
print(match.group())
else:
print('No match')
在这个示例中,我们定义了一个正则表达式^[+-]?\d+$
,用于匹配整数。然后,我们定义了一个123
,其中包含数。最后,我们使用re.match()方法查找匹配项,并输出匹配结果123
。
2. 匹配浮点数
```pythonimport re
定义正则表达式
pattern = r'^[+-]?\d+(.\d+)?$'
定义字符串
string = '3.14'
使用re.match()方法查找匹配项
match = re.match(pattern string)
输出匹配结果
if match:
print(match.group())
else:
print('No match')
在这个示例中,我们定义了一个正则表达式`^[+-]?\d+(\.\d+)?$`,用于匹配浮点数。然后,我们定义了一个字符串`314`,其中包含浮点数。最后,我们使用re.match()方法查找匹配项,并输出匹配结果`3.14`。
### 3. 匹配正整数
```python
import re
# 定义正则表达式
pattern = r'^[1-9]\d*$'
# 定义字符串
string = '123'
# 使用re.match()方法查找匹配项
match = re.match(pattern, string)
# 输出匹配结果
if match:
print(match.group())
else:
print('No match')
在这个示例中,我们定义了一个正则表达式^[1-9]\d*$
,用于匹配正整数。然后,我们定义了一个字符串123
,其中包含正整数。最后,我们使用re.match()方法查找匹配项,并输出匹配结果123
。
4 匹配负整数
```pythonimport re
定义正则表达式
pattern = r'^-[1-9]\d*$'
定义字符串
string = '-123'
使用re.match()方法查找匹配项
match = re.match(pattern, string)
输出匹配结果
if match:
print(match.group())
else:
print('No match')
在这个示例中,我们定义了一个正则表达式`^-[1-9]\d*$`,用于匹配负整数。然后,我们定义了一个字符串`-123`,其中包含负整数。最后,我们使用re.match()方法找匹配项,并输出匹配结果`-123`。
### 5. 匹配非负整数
```python
import re
# 定义正则表达式
pattern = r'^\d+$'
# 定义字符串
string = '123'
# 使用re.match()方法查找匹配项
match = re.match(pattern, string)
# 输出匹配结果
if match:
print(match.group())
else:
print('No match')
在这个示例中,我们定义了一个正则表达式^\d+$
,用于匹配非负整数。后,我们定义了一个字符串123
,其中包含负数。最后,我们使用re.match()方法查找匹配项,并输出匹配结果123
。
6. 匹配非正整数
import re
# 定义正则表达式
pattern = r'^-[1-9]\d*|0$'
# 定义字符串
string = '-123'
# 使用re.match()方法查找匹配项
match = re.match(pattern, string)
# 输出匹配结果
if match:
(match.group())
else:
print('No match')
在这个示例中,我们定义了一个正则表达式^-[1-9]\d*|0$
,用于匹配非正整数。然后,我们定义了一个-123
,其中包含非正整数。最后,我们使用re.match()方法查找匹配项,并输出匹配结果-123
。
7. 匹配正浮点数
import re
# 定义正则表达式
pattern = r'^[1-9d*\.\d+|\.\d*[1-9]\d*$'
# 定义字符串
string = '3.14'
# 使用re.match()方法查找匹配项
match = re.match(pattern, string)
# 输出匹配结果
if match:
print(match.group())
else:
print('No match')
在这个示例中,我们定义了一个正则表达式^[1-9]\d*\.\d+|[-9]\d*\.\d+|0\.\d*[1-9]\d*$
,用于匹配正浮点数。然后,我们定义了一个字符串3.14
,其中包含正浮点数。最后,我们使用re.match()方法查找匹配项,并输出匹配结果3.14
。
8. 匹配负浮点数
import re
# 定义正则表达式
pattern = r'^-[1-9]\d*\.\d+|-0\.\d*[1-9]\d*$'
# 定义字符串
string = '-3.14'
# 使用re(pattern, string)
# 输出匹配
if match:
print.group())
else:
print('No match')
在这个示例中,我们定义了一个正则表达式^-[1-9]\d*\.\d+|-0\.\d1-]\d*$
,用于匹配负浮点数。然后,我们定义了一个字符串-3.14
,其中包含负浮点数。最后,我们使用re.match()方法查找匹配项,并输出匹配-3.14
。
9. 匹配非负浮点数
import re
# 定义正则表达式
pattern = r'^\d+\.\d+|0\.\d*[1-9]\d*|0?\.0+|0$'
# 定义字符串
string = '3.14'
# 使用re.match()方法查找匹配项
match = re.match(pattern, string)
# 输出匹配结果
if match:
print(match.group())
else:
print('No match')
在这个示例中,我们定义了一个正则表达式^\d+\.\d+|0\d*[1-9]\d*|0?\.0+|0$
,用于匹配非负浮点数。然后,我们定义了一个字符串3.14
,其中包含非负浮点数。最后,我们使用re.match()方法查找匹配,并输出匹配结果3.14
。
10. 匹配非正浮点数
import re
# 定义正则表达式
pattern = r'^(-([1-9]\d*\.\d+|0\.\d*[1-9]\d*))|0\.0+|0$'
# 定义字符串
string = '-3.14'
# 使用re.match()方法查找匹配
match = re.match(pattern, string)
# 输出匹配结果
if match:
print(match.group())
else:
print('No match')
在这个示例中,我们定义了一个正则表达式^(-([1-9]\d*\.\d+|0\.\d*[19]\d*))|0\.0+|0$
,用于匹配非正浮点。然后,我们定义了一个字符串-3.14
,其中包含非正浮点数。最后,我们使用re.match()方法查找匹配项,并输出匹配结果-3.14
。
11. 匹配手机号码
import re
# 定义正则表达式
pattern = r'^1[3-9]\d{9}$'
# 定义字符串
string = '13812345678'
# 使用re.match()方法查找匹配项
match = re.match(pattern, string)
# 输出匹配结果
if match:
print(match.group())
else:
print('No match')
在这个示例中,我们定义了一个正则表达式^1[3-9]\d{9}$
,用于匹配手机号码。然后,我们定义了一个字符串13812345678
,其中包含手机号码。最后,我们使用re.match()查找匹配项,并输出匹配结果13812345678
。
12. 匹配身份证号码
import re
# 定义正则表达式
pattern = r'^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[02])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dX]$'
# 定字符串
string =110101199003077777'
# 使用re.match()方法查找匹配项
match = re.match(pattern, string)
# 输出匹配结果
if match:
print(match.group())
else:
print('No match')
在这个示例中我们定义了一个正则表达式^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dX]$
,用于匹配身份证号码。然后,我们定义了一个字符串110101199003077777
,其中包含身份证号码。最后,我们使用re.match()方法查找匹配项,并输出匹配结果110101199003077777
。
13. 匹配URL
import re
# 定义正则表达式
pattern = r'^https?://[\w-]+(\.[\w-]+)+([\w.,?^=%&:/~+#-]*[\w@?^=%&/~+#-])?$'
# 定义字符串
string = 'https://www.example.com/index.html'
# 使用re.match()方法查找匹配项
match = re.match(pattern, string)
# 输出匹结果
if match:
print(match.group())
else:
print('No match')
在这个示例中,我们定义了一个正则表达式^https?://[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?$
,用于匹配URL。然后,我们定义了一个字符串https://www.example.com/index.html
,其中包含URL。最后,我们使用re.match()方法查找匹配项,并输出匹配结果https://www.example.com/index.html
。
14. 匹配IP地址
```python
import re
定义正则表达式
pattern = r'^((25[0-5]|2[0-4]\d|[01]?\d\d?).){3}(25[0-5]|2[
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python验证的50个常见正则表达式 - Python技术站