Python正则表达式学习指南
正则表达式是一种强大的工具,可以用于匹配、查找和替换文本中的模式。Python re 模块提了正则表达式的支持,本攻略将详细讲解 Python 中的正则表达式的基本用法、常用符号和例应用。
基本用法
Python 中使用 re 模块提供的函数来操作正则表达式。模块提供了常用函数:
re.search(pattern, string, flags=0)
:在字符串中搜索正则表达式的第一个匹配项。
- re.match(pattern, string, flags=0)
:在字符串的开头配正则表达式。
- re.findall(pattern, string, flags=0)
:在字符串中正则表达式的所有匹配项。
- .sub(pattern, repl, string, count=0, flags=0)
:在字符串中搜索正则表达式的所有匹配项,并将其换指定字符串。
其中,pattern 表示正则表达式,string 表示匹配字符串,flags 参数表示正表达式的匹配模式。
下是一个例子,演示如何使用 re 模块的 search() 函数:
import re
text = 'The quick brown fox jumps over the lazy dog.'
pattern = r'fox'
result = re.search(pattern, text)
if result:
print('Match found:', result.group())
else:
print('Match not found')
在上面的代码中,我们使用正则表达式 fox
匹配字符串中的 fox
。search()
用于在字符串中搜索正则表达式的第一个匹配项。运行代码后,输出结果为 Match found: fox
。
常用符号
下面是一些常用的正则表达式符号:
.
:匹配任意字符,除换行符。*
:匹配前面的字符零次或多次。+
:匹配前面的字符一次或多次。?
:匹配前面的字符零次或次。^
:匹配字符串的开头。$
:匹配字符串的结尾。[]
:匹配括号中的任意一个字符。()
:将括号中的字符作为一个整体进行匹配。|
:匹配两个或个正则表达中的任意一个。
下面是一个例子,演示如何使用正则表达式符号匹配字符串中的数字:
import re
text = 'The price is $1099.'
pattern = r'\d+'
result = re.findall(pattern, text)
if result:
print('Matches found:', result)
else:
print('Matches not found')
在上面的代码中,我们使用正则表达式 \d+
匹配字符串中的数字。\d
表示匹配一个数字字符,+
表示匹配一个或多个数字字符。findall()
函数可以返回所有匹配的结果。运行后,输出结果为 Matches found: ['1099']
。
示例1:匹配HTML标签中的文本内容
下面是一个例子,演示如何使用正则表达式匹配 HTML 标签中的文本内容:
import re
= '<h1>Welcome to my website</h1>'
pattern = r'<.*?>(.*?)</.*?>'
result = re.search(pattern, text)
if result:
print('Match found:', result.group(1))
else:
print('Match not found')
在上面的代码中,我们使用正则表达式 <.*?>(.*?)<!--.*?-->
匹 HTML 标签中的文本内容。<.*?>
表示匹配一个或多个任意字符,.*?
表示非贪婪匹配,()
表示将 .*?
匹配到的字符串作为捕获组。search()
用于在字符串中搜索正则表式的第一个匹配项。运行代码后,输出结果为 Match found: Welcome to my website
。
示例2:替换字符串中的文本
下面是另一个例子,演示如何使用正则表达式替换字符串中的文本:
import re
text = 'The quick brown fox jumps over the lazy dog.'
pattern ='fox'
replacement ='cat'
result = re.sub(pattern, replacement, text)
print('Result:', result)
在上面的代码中,我们使用正则表达式 fox
匹配字符串中的 `,并将其替换为
cat。
()函数用于在字符串中搜索正则表达式的所有匹配项,并将其换指定字符串。运行代码后,输出结果为
Result: The quick brown cat jumps over the lazy dog.`。
示例3:匹配邮箱地址
下面是另一个例子,演示如何使用正则表达式匹配邮箱地址:
import re
email = 'example123@gmail.com'
pattern = r'\w+@\w+\.\w+'
result = re.search(pattern, email)
if result:
print('Match found:', result.group())
else:
print('Match not found')
在上面的代码中,我们使用正则表达式 \w+@\w.\w+
匹配邮箱地址。\w
表示匹配一个字母、数字或下划线字符,+
表示匹配一个或多个字符,\.
表示匹配一个点字符。运行代码后,输出结果为 found: example123@gmail.com
。
示例4:匹配手机号码
下面是另一个例子,演示如何使用正则表达式匹配手机号码:
import re
phone_number = '123-456-7890'
pattern = r'\d{3}-\d{3}-\d{4}'
result = re.search(pattern, phone_number)
if result:
print('Match found:', result.group())
else:
print('Match not found')
在上面的代码中,我们使用正则表达式 \d{3}-d{3}-\d{4}
匹配手机号码。\d
表示匹配一个数字字符,{3}
表示匹配三个数字字符,-
表示匹配一个短横线字符。运行代码后,输出结果为 Match found: 123-456-7890
。
以上是两个额外的示例,演示了如何使用正则表达式匹配邮箱地址和手机号码。正则表达式是一种强大的工具,可以用于解析文本数据、自动生成代码和自动化测试等。希望读者可以通过这些示例更好地理解正则表达式的应用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python正规则表达式学习指南 - Python技术站