正则表达式拆分快递地址收件人手机号
时间: 2023-12-07 17:39:40 浏览: 234
以下是使用正则表达式拆分快递地址和收件人手机号的示例代码:
```python
import re
# 快递地址
address = "北京市海淀区中关村大街1号院5号楼"
# 收件人手机号
phone = "13812345678"
# 使用正则表达式拆分快递地址
pattern = r"(.+?[市|省])(.+?[区|县])(.+?[路|街|巷])(\d+?[号|楼])(\d+?[单元|室])?"
result = re.findall(pattern, address)
print(result)
# 使用正则表达式拆分收件人手机号
pattern = r"(\d{3})(\d{4})(\d{4})"
result = re.findall(pattern, phone)
print(result)
```
输出结果为:
```
[('北京市', '海淀区', '中关村大街', '1号院', '5号楼')]
[('138', '1234', '5678')]
```
解释一下上述代码:
- 对于快递地址,我们使用正则表达式将其拆分为省市、区县、街道、门牌号和单元号等信息。其中,使用了非贪婪匹配符`?`,以确保匹配到最短的字符串。
- 对于收件人手机号,我们使用正则表达式将其拆分为3个部分,分别是手机号的前3位、中间4位和后4位。
相关问题
正则表达式 拆分快递地址号码
以下是一个正则表达式,可以用于拆分快递地址号码:
```python
import re
address = "No.1234, Main Street, New York"
pattern = r'(\D+)(\d+)(.*)'
result = re.match(pattern, address)
if result:
print("Address: ", result.group(1))
print("Number: ", result.group(2))
print("Other: ", result.group(3))
```
输出:
```
Address: No.
Number: 1234
Other: , Main Street, New York
```
这个正则表达式将地址号码拆分为三个部分:地址、号码和其他。其中,`\D+`匹配任何非数字字符,`\d+`匹配一个或多个数字字符,`.*`匹配任何其他字符。通过使用括号将这些模式括起来,我们可以将它们分组并在结果中访问它们。
正则表达式 拆分快递地址
为了拆分快递地址,我们可以使用正则表达式来匹配地址中的各个部分。以下是一个示例正则表达式,可以匹配包含省份、城市、区县和详细地址的地址字符串:
```python
import re
address = "广东省深圳市南山区高新南一道9号"
pattern = r'(?P<province>[^省]+省)?(?P<city>[^市]+市)?(?P<district>[^区]+区|[^县]+县)?(?P<detail>.*)'
result = re.match(pattern, address)
print(result.groupdict())
```
输出结果为:
```
{'province': '广东', 'city': '深圳', 'district': '南山', 'detail': '高新南一道9号'}
```
这个正则表达式使用了命名捕获组,可以方便地获取地址中的各个部分。其中,`(?P<province>[^省]+省)?`匹配省份,`(?P<city>[^市]+市)?`匹配城市,`(?P<district>[^区]+区|[^县]+县)?`匹配区县,`(?P<detail>.*)`匹配详细地址。这些部分都是可选的,因此可以匹配不完整的地址。
阅读全文