如果字符串包含单词X,则仅选择单词Y.

时间:2016-06-13 14:34:12

标签: c# regex

我有一个类似的问题here,我能够解决。

我需要的是如果一个字符串包含单词X,则只选择单词Y。

我希望能够说,如果此字符串包含“azureStorage”,则选择“mystorage”

<add name="azureStorage" connectionString="DefaultEndpointsProtocol=https;AccountName=mystorage;AccountKey=myKey" />

我最接近的是这个正则表达式,它适用于regex101但不适用于c#。

(?<=(azureStorage)...................................................AccountName=).[^;]*

显然,这不是一个好的解决方案。

Here is a link to the example on Regex 101

1 个答案:

答案 0 :(得分:1)

将lookbehind限制为仅限字符串azureStorage,然后在AccountName=之后抓取任何不是;的内容:

(?<=azureStorage).*AccountName=([^;]+)

如果AccountName是连接字符串的最后一个组成部分,您可能希望在末尾添加单词边界检查:

(?<=azureStorage).*AccountName=([^;]+)\b