C# 正则表达式,在两个已知值和未知值之间提取文本

C# 正则表达式,在两个已知值和未知值之间提取文本,c#,regex,C#,Regex,我有一个问题,关于如何在两个字符串之间提取字符串,以已知字符串加上C#中的任何未知字符串开头。我的问题可能令人困惑。问题出在这里 这是以“known\u value\u 1”开头的单词,此处为未知“我要提取的单词”此处为未知“known\u value\u 2” 两个已知值和我想提取的单词在双引号内。问题是,要提取的单词前后都是未知值,但没有双引号 这不管用 string value = Regex.Match(input, "\"known_value_1\" \"(.*?)\" \"know

我有一个问题,关于如何在两个字符串之间提取字符串,以已知字符串加上C#中的任何未知字符串开头。我的问题可能令人困惑。问题出在这里

这是以“known\u value\u 1”开头的单词,此处为未知“我要提取的单词”
此处为未知
“known\u value\u 2”

两个已知值和我想提取的单词在双引号内。问题是,要提取的单词前后都是未知值,但没有双引号

这不管用

string value = Regex.Match(input, "\"known_value_1\" \"(.*?)\" \"known_value_2\"").Groups[1].Value;
我不知道在
\(.*?\”
成为
unkown\(.*?\”unkown
之前和之后。未知值不在双引号中


提前谢谢

将非贪婪匹配的任何东西-
*?
作为未知

string value = Regex.Match(input, "\"known_value_1\".*?\"(.*?)\".*?\"known_value_2\"").Groups[1].Value;

将非贪婪匹配项-
*?
作为未知项

string value = Regex.Match(input, "\"known_value_1\".*?\"(.*?)\".*?\"known_value_2\"").Groups[1].Value;

我相信如果未知模式未知,提取器可能会发生任何事情,因此在某些特殊情况下可能会使正则表达式无效…@Ian No,因为要提取的单词在双qoutes中。对不起,我再次阅读了你的问题。你是right@Ian正如我上面所说,未知不包含双引号。一个有用的在线正则表达式工具会很有用:我相信如果未知模式未知,提取器可能会发生任何事情,因此在某些特殊情况下可能会使正则表达式无效…@Ian No,因为要提取的单词在双引号内。对不起,我又读了一遍你的问题。你是right@Ian正如我上面所说的,unknown不包含双引号。一个有用的在线正则表达式工具将非常有用: