Python 使用正则表达式匹配字符串中的3个字符

Python 使用正则表达式匹配字符串中的3个字符,python,regex,Python,Regex,我有一个json负载,我需要只匹配vdcLocation中的SDC { "cmdbID":"d01aacda21b7c181aaaaa16dc4bcbca", "serialNumber":"VBlock740-4239340361f4d-0f6d9d6ad46879", "vdcLocation":"Data Center-San Diego (SDC)&quo

我有一个json负载,我需要只匹配
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语句,以获得所需的其他逻辑。