我有一个问题,如何在已知字符串加上C#中的任何未知字符串的两个字符串开头之间提取字符串。我的问题可能令人困惑。这是问题所在。
这是以“known_value_1”开头的字词
unknown-here
“我要提取的字词”unknown-here
“known_value_2”
因此,两个已知值和我想要提取的单词在双引号内。问题是,在提取的单词之前和之后是未知值但没有双引号。
这不起作用
string value = Regex.Match(input, "\"known_value_1\" \"(.*?)\" \"known_value_2\"").Groups[1].Value;
我不知道\"(.*?)\"
之前和之后unkonwn\"(.*?)\"unkonwn
是$switches = DB::table('sw_pairs')->
join('cust_sw_pair','cust_sw_pair.sw_pair_id', '=', 'sw_pairs.sw_pair_id')->
select(
DB::raw(
'cust_sw_pair.sw_pair_id,
count(cust_sw_pair.sw_pair_id) as totcount,
pri_sw, sec_sw,
count(if(pri_sw_admin_status="Admin Down" AND sec_sw_admin_status="Admin Down", 1, NULL)) as downCount')
)->
groupBy('cust_sw_pair.sw_pair_id')->get();
。未知值不是双引号。
提前谢谢
答案 0 :(得分:3)
将非贪婪的比赛放在任何地方 - .*?
为未知。
string value = Regex.Match(input, "\"known_value_1\".*?\"(.*?)\".*?\"known_value_2\"").Groups[1].Value;