python的re正则表达式
一、正在表达式的方法():
re
是Python中用于处理正则表达式的内置库,提供了许多有用的方法。以下是其中几个常用的方法:
re.match(pattern, string)
: 尝试从字符串的开头匹配一个模式,如果匹配成功则返回匹配对象,否则返回None
。re.search(pattern, string)
: 在整个字符串中搜索匹配给定模式的第一个位置,并返回匹配对象。re.findall(pattern, string)
: 查找字符串中所有与模式匹配的非重叠部分,并返回一个列表。re.sub(pattern, repl, string)
: 使用指定的替换字符串或函数替换字符串中与模式匹配的所有出现。re.compile(pattern)
: 将正则表达式编译为模式对象,以便重复使用。
这只是re
库中一些常用方法的示例,还有其他方法和参数可以根据具体需求进行使用。详细的使用文档可以在Python官方文档中查找。
二、正则表达式的pattern
以下是一些常用的正则表达式模式:
- 匹配数字:
\d
或[0-9]
,用于匹配任意一个数字字符。 - 匹配字母:
[a-zA-Z]
,用于匹配任意一个字母(大小写不区分)。 - 匹配单词字符:
\w
或[a-zA-Z0-9_]
,用于匹配任意一个字母、数字或下划线。 - 匹配空白字符:
\s
,用于匹配任意一个空格、制表符、换行符等空白字符。 - 匹配任意字符:
.
,用于匹配任意一个字符(除了换行符)。 - 匹配多个重复字符:
*
:零次或多次重复(贪婪匹配)。+
:一次或多次重复(贪婪匹配)。?
:零次或一次重复。{n}
:恰好重复 n 次。{n,}
:至少重复 n 次。{n,m}
:重复 n 到 m 次。
- 匹配边界:
^
:字符串的开头。$
:字符串的结尾。\b
:单词的边界。
- 匹配特定字符集合:
[...]
:匹配方括号内的任意一个字符。[^...]
:匹配除了方括号内指定的字符以外的任意一个字符。
三、正则表达式的例子
-
匹配邮箱地址:
^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
-
匹配 URL:
^(https?|ftp)://[^\s/$.?#].[^\s]*$
-
匹配手机号码(简化版):
^1\d{10}$
-
匹配日期(YYYY-MM-DD 格式):
^\d{4}-\d{2}-\d{2}$
-
匹配身份证号码(18位):
^\d{17}[\dXx]$
-
匹配IP地址:
^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$
-
匹配HTML标签(简化版):
<([a-zA-Z][a-zA-Z0-9]*)\b[^>]*>.*?</\1>