繁体   English   中英

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

[英]Use regex to match 3 characters in string

我有一个 json 有效负载,我只需要匹配vdcLocationSDC

{
    "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" in dataCenter使用"SDC" in dataCenter 但是,如果您的需求有点复杂,并且您确实需要使用正则表达式,那么您可能想要使用re.search (请参阅文档)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM