re.findall正则式写法
想要分别提取出city和subAddress,改怎么写呢?
"SenderModel": {
"zipCode1": "960",
"zipCode2": "8116",
"prefecture": "福島県",
"city": "福島市",
"subAddress": "春日町16-48",
"familyName": "酒井",
"firstName": "まい",
"isolatedIslandFlag": 0
},
可以使用如下正则表达式:
import re
text = '''"SenderModel": {
"zipCode1": "960",
"zipCode2": "8116",
"prefecture": "福島県",
"city": "福島市",
"subAddress": "春日町16-48",
"familyName": "酒井",
"firstName": "まい",
"isolatedIslandFlag": 0
},'''
city = re.findall(r'"city": "(.*?)",', text)[0]
subAddress = re.findall(r'"subAddress": "(.*?)",', text)[0]
print(city)
print(subAddress)
望采纳!!!点击回答右侧采纳即可!!!
可以使用两个正则表达式进行分别匹配,如下:
import re
s = """
"SenderModel": {
"zipCode1": "960",
"zipCode2": "8116",
"prefecture": "福島県",
"city": "福島市",
"subAddress": "春日町16-48",
"familyName": "酒井",
"firstName": "まい",
"isolatedIslandFlag": 0
},
"""
city = re.findall(r'"city": "(.?)",', s)[0]
subAddress = re.findall(r'"subAddress": "(.?)",', s)[0]
print(city)
print(subAddress)
这样就可以分别得到 city 和 subAddress 的值。
import re
json_string = """{
"SenderModel": {
"zipCode1": "960",
"zipCode2": "8116",
"prefecture": "福島県",
"city": "福島市",
"subAddress": "春日町16-48",
"familyName": "酒井",
"firstName": "まい",
"isolatedIslandFlag": 0
}
}"""
match = re.findall(r'"city": "(.*?)",.*"subAddress": "(.*?)"', json_string, re.DOTALL)
print(match)
望采纳!
你可以使用以下正则表达式来提取出 city 和 subAddress:
import re
data = '''"SenderModel": {
"zipCode1": "960",
"zipCode2": "8116",
"prefecture": "福島県",
"city": "福島市",
"subAddress": "春日町16-48",
"familyName": "酒井",
"firstName": "まい",
"isolatedIslandFlag": 0
}, '''
city = re.findall(r'"city": "(.*?)",', data)[0]
subAddress = re.findall(r'"subAddress": "(.*?)",', data)[0]
print(city)
print(subAddress)
document = '''"SenderModel": {
"zipCode1": "960",
"zipCode2": "8116",
"prefecture": "福島県",
"city": "福島市",
"subAddress": "春日町16-48",
"familyName": "酒井",
"firstName": "まい",
"isolatedIslandFlag": 0
}, '''
city = re.search("(?<=\"city\": ").*?(?=",)", document )
city = re.search("(?<=\"subAddress\": ").*?(?=",)", document )
import json
json_data = '''
{
"SenderModel": {
"zipCode1": "960",
"zipCode2": "8116",
"prefecture": "福島県",
"city": "福島市",
"subAddress": "春日町16-48",
"familyName": "酒井",
"firstName": "まい",
"isolatedIslandFlag": 0
}
}
'''
data = json.loads(json_data)
prefecture = data['SenderModel']['prefecture']
city = data['SenderModel']['city']
subAddress = data['SenderModel']['subAddress']
familyName = data['SenderModel']['familyName']
firstName = data['SenderModel']['firstName']
print(prefecture)
print(city)
print(subAddress)
print(familyName)
print(firstName)
使用分组的写法,可以将city和subAddress分别提取出来。
示例正则式:
address = "New York, NY 10001, USA"
pattern = r"([a-zA-Z ]+), ([a-zA-Z ]+) (\d+), ([a-zA-Z ]+)"
match = re.search(pattern, address)
city = match.group(1)
subAddress = match.group(2) + " " + match.group(3) + ", " + match.group(4)
输出:
city: New York
subAddress: NY 10001, USA
注意:
这里使用了分组,将city和subAddress分别用括号括起来,可以使用group方法来提取分组的内容。
如果需要提取多个内容,可以使用findall方法,返回一个元组列表,每个元组对应一个匹配