Python利用正则表达式提取字符串
本攻略将详细讲解如何使用Python中的正则表达式来提取字符串,包括如何提取数字、字母、中文、特殊字符等常见字符串。
提取数字
下面是一个例子,演示如何使用正则表达式提取数字:
import re
text = 'My phone number is 13812345678'
pattern = r'\d+'
result = re.findall(pattern, text)
if result:
print('Matches found:', result)
else:
print('Matches not found')
在上面的代码中,我们使用正则表达式\d+
进行匹配。然后,我们使用findall()函数进行匹配。findall()函数返回所有匹配的结果。如果匹配成功,我们使用group()函数获取匹配到的数字。运行代码后,结果为Matches found: ['13812345678']
。
提取字母
下面是一个例子,演示如何使用正则表达式提取字母:
import re
text = 'My name is John'
pattern = r'[a-zA-Z]+'
result = re.findall(pattern, text)
if result:
print('Matches found:', result)
else:
print('Matches not found')
在上面的代码中,我们使用正则表达式[a-zA-Z]+
进行匹配。然后,我们使用findall()函数进行匹配。find()函数返回所有匹配的结果。如果匹配成功,我们使用group()函数获取匹配到的字母。运行代码后,结果为Matches found: ['My', 'name', 'is', 'John']
。
提取中文
下面是一个例子,演示如何使用正表达式提取中文:
import re
text = '我的名字是张三'
pattern = r'[\u4e00-\ufa5'
result = re.findall(pattern, text)
if result:
print('Matches found:', result)
else:
print('Matches not found')
在上面的代码中,我们使用正则表达式[\u4e00-\u9fa5]+
进行匹配。然后,我们使用findall()函数进行匹配。findall()函数返回所有匹配的结果。如果匹配成功,我们使用group()函数获取配到的中文。运行代码后,结果为Matches found: ['我的名字是张三']
。
提取特殊字符
下面是一个例子,演示如何使用正则表达式提取特殊字符:
import re
text = 'My email address is john@example.com'
pattern = r'[^\w\s]+'
result = re.findall(pattern, text)
if result:
print('Matches found:', result)
else:
print('Matches not found')
在上面的代码中,我们使用正则表达式[^\w\s]+进行匹配。然后,我们使用findall()函数进行匹配。findall()函数返回所有匹配的结果。如果匹配成功,我们使用group()函数获取匹配到的特殊字符。运行代码后,结果为
Matches found: ['@', '.']`。
示例说明
示例1:从HTML中提取链接
下面是一个例子,演示如何从HTML中提取链接:
import re
html = '<a href="http://www.example.com">Example</a>'
pattern = r'href="([^"]*)"'
result = re.search(pattern, html)
if result:
print('Match found:', result.group(1))
else:
print('Match not found')
在上的代码中,我们使用正则表达式href="([^"]"
进行匹配。然,我们使用search()函数进行匹配。search()函数返回第一个匹配的结果。如果匹配我们使用group(1)函数获取匹配到的链接。运行代码后,结果为`Match found: http://www.example.com。
示例2:从JSON中提取特定字段
下面是一个例子,演示如何从JSON中提取特定字段:
import re
json
json_data = '{"name": "John", "age": 30, "city": "New York"}'
pattern = r'"name": "([^"]*)"'
result = re.search(pattern, json_data)
if result:
name = result1)
data = json.loads(json_data)
print('Name:', name)
print('Age:', data['age'])
print('City:', data['city'])
else:
print('Match not found')
在上面的代码中,我们使用正则表达式"name": "([^"]*)"
进行匹配。然后,我们使用search()函数进行匹配。search()函数返回第一个匹配的结果。如果匹配成功,我们使用group(1)函数匹配到的名称。然后,我们使用.loads()函数将JSON数据转换为Python对象。最后,我们可以使用Python对象来访问特定字段。运行代码后,结果:
Name: John
Age: 30
City: New York
以上是Python利用正则表达式提取字符串的完整攻略。在实际应用中,我们可以根据具体情况选择合适的正则表达式模式,以便快速、准确地提取字符串。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python利用正则表达式提取字符串 - Python技术站