Python 使用正则表达式匹配字符串中的3个字符
我有一个json负载,我需要只匹配Python 使用正则表达式匹配字符串中的3个字符,python,regex,Python,Regex,我有一个json负载,我需要只匹配vdcLocation中的SDC { "cmdbID":"d01aacda21b7c181aaaaa16dc4bcbca", "serialNumber":"VBlock740-4239340361f4d-0f6d9d6ad46879", "vdcLocation":"Data Center-San Diego (SDC)&quo
vdcLocation
中的SDC
{
"cmdbID":"d01aacda21b7c181aaaaa16dc4bcbca",
"serialNumber":"VBlock740-4239340361f4d-0f6d9d6ad46879",
"vdcLocation":"Data Center-San Diego (SDC)"
}
这是我到目前为止的代码,我遗漏了什么
import json
with open('test-payload.json') as json_file:
data = json.load(json_file)
serialNumber = data["serialNumber"]
dataCenter = data["vdcLocation"]
splittedSerialNumber = serialNumber.split("-") # returns splitted list
firstPart = splittedSerialNumber[0] # accessing the first part of the splitted list
splittedDataCenter = dataCenter.split("-")
lastPart = splittedDataCenter[1]
vdcLocationOnly = if (re.match^('[SDC]')$):
print(vdcLocationOnly)
print(serialNumber)
print(splittedSerialNumber)
print(firstPart)
print(splittedDataCenter)
print(lastPart)
一种解决方案如下所示:
import json
import re
with open('test-payload.json') as json_file:
data = json.load(json_file)
serialNumber = data["serialNumber"]
dataCenter = data["vdcLocation"]
splittedSerialNumber = serialNumber.split("-") # returns splitted list
firstPart = splittedSerialNumber[0] # accessing the first part of the splitted list
splittedDataCenter = dataCenter.split("-")
lastPart = splittedDataCenter[1]
if "SDC" in dataCenter:
print("found SDC using in")
if re.search(r'\(SDC\)$', dataCenter):
print("found SDC using re")
print(serialNumber)
print(splittedSerialNumber)
print(firstPart)
print(splittedDataCenter)
print(lastPart)
最简单的方法是在数据中心使用“SDC”。但是,如果您的需求有点复杂,并且确实需要使用正则表达式,那么您可能需要使用
re.search
(请参阅)。如果您只想在输入中匹配SDC
,那么您实际上不需要正则表达式。仅使用字符串函数您的代码在这里是错误的:“vdcLocationOnly=if(re.match^('[SDC]')):”带有“^”符号的语法无效,“$”符号和re.match遗漏了一个参数,而带有if语句的变量赋值的语法仍然无效……tyvm,这非常有效。我在if中添加了一个else语句,以获得所需的其他逻辑。