使用C#中的正则表达式匹配特定字符

本文关键字:字符 正则表达式 使用 | 更新日期: 2023-09-27 18:25:41

我有一个字符串,比如:

"{
'"__type'":'"DailyRequestItem:#CapitalIQ.DataAPI.Download'",
'"Identifier'":{'"__type'":'"CompanyIdentifier:#CapitalIQ.DataAPI'",'"SearchString'":'"goog'"},
'"FormulaMetric'":{'"MetricName'":'"IQ_LASTSALEPRICE'",'"MetricId'":0},
'"ReturnType'":0,
'"CurrencyConversionInfo'":{'"CurrencyId'":160,'"CurrencyConversionMode'":0},'"Response'":{
'"Id'":0,'"CompanyId'":29096,'"TradingItemId'":11311662,'"RequestedCurrencyId'":0,'"CurrencyConversionModeId'":0,'"Error'":0,'"Values'":[{'"CurrencyConversionDate'":'"''/Date(-62135578800000-0500)''/'",'"DataTypeId'":2,'"ReportedCurrencyId'":0,'"Id'":0,'"CurrencyId'":160,'"ScaleId'":0,'"UnitsId'":0,'"ValueId'":0,'"ValueAsString'":'"896.598000'",'"Delimiter'":'",'",'"SubValueList'":null,'"Error'":0,'"ClickThroughTypeId'":0,'"InstanceId'":0,'"PricingDate'":'"''/Date(1374724800000-0400)''/'",'"ConversionMode'":0,'"AuditabilityTypeId'":0,'"AsOfDate'":'"''/Date(1374724800000-0400)''/'",'"CompanyId'":0,'"DataItemId'":0,'"TradingItemId'":0}]
},
'"RangeInfo'":{'"AsOfDate'":'"''/Date(1374724800000-0400)''/'",'"StartDate'":'"''/Date(-62135596800000)''/'",'"EndDate'":'"''/Date(-62135596800000)''/'",'"Frequency'":1,'"ReturnType'":0,'"TradingDayOffset'":null,'"IsIntraday'":false},'"Period'":null}"

我需要从中删除这个部分:

'"Response'":{
'"Id'":0,'"CompanyId'":29096,'"TradingItemId'":11311662,'"RequestedCurrencyId'":0,'"CurrencyConversionModeId'":0,'"Error'":0,'"Values'":[{'"CurrencyConversionDate'":'"''/Date(-62135578800000-0500)''/'",'"DataTypeId'":2,'"ReportedCurrencyId'":0,'"Id'":0,'"CurrencyId'":160,'"ScaleId'":0,'"UnitsId'":0,'"ValueId'":0,'"ValueAsString'":'"896.598000'",'"Delimiter'":'",'",'"SubValueList'":null,'"Error'":0,'"ClickThroughTypeId'":0,'"InstanceId'":0,'"PricingDate'":'"''/Date(1374724800000-0400)''/'",'"ConversionMode'":0,'"AuditabilityTypeId'":0,'"AsOfDate'":'"''/Date(1374724800000-0400)''/'",'"CompanyId'":0,'"DataItemId'":0,'"TradingItemId'":0}]
},    

并序列化它。我正在使用这个regex,但没有用:

string pattern = @"''Response'.']}";

有人能帮我形成正则表达式模式吗?请帮助

使用C#中的正则表达式匹配特定字符

正如人们所建议的那样,解析JSON响应regex不是一个合适的解决方案,但如果您没有找到任何其他解决方案,您可以使用此模式来解决您的问题:

('"Response'")['S's]*?(?='"RangeInfo'")

看看这个卢布演示。

注意:

我预计JSON响应将始终采用特定的格式,RangeInfo元素将是JSON响应中下一个即将到来的节点。