我有一个类似的问题here,我能够解决。
我需要的是如果一个字符串包含单词X,则只选择单词Y。
我希望能够说,如果此字符串包含“azureStorage”,则选择“mystorage”
<add name="azureStorage" connectionString="DefaultEndpointsProtocol=https;AccountName=mystorage;AccountKey=myKey" />
我最接近的是这个正则表达式,它适用于regex101但不适用于c#。
(?<=(azureStorage)...................................................AccountName=).[^;]*
显然,这不是一个好的解决方案。
答案 0 :(得分:1)
将lookbehind限制为仅限字符串azureStorage
,然后在AccountName=
之后抓取任何不是;
的内容:
(?<=azureStorage).*AccountName=([^;]+)
如果AccountName
是连接字符串的最后一个组成部分,您可能希望在末尾添加单词边界检查:
(?<=azureStorage).*AccountName=([^;]+)\b