本文介绍了动态解析字符串中的子字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
大家好,
我有以下字符串,
Hi All,
I have a following string,
string strVal = "WHEN table.column1 = ''ABC'' AND table.column2 = ''xyz'' AND table.column3 IN ( ''pqr'',''NON'' ) THEN ''Code Project''";
我想从上面的字符串中生成子字符串,并存储其各自的值
例如:
column1 ="ABC"; column2 ="xyz" column3包含两个值,我想将其存储在如column3 [] = {"pqr","NON"} ...这样的数组中!请帮助!
问候,
DevD
I wanna generate substrings from above string and store its respective value
for eg:
column1="ABC"; column2="xyz" column3 contains two values and i want to store it in array like column3[]={"pqr","NON"}...got struck ! pls help!!
Regards,
DevD
推荐答案
Regex r = new Regex(@"((?'tab'\w+)\.(?'col'\w+)(\s*=\s*\'(?'val'\w+)\'|\s+IN\s*\((?'item'\s*\'(?'val'\w+)\'\s*,?)+\)))");
var matches = r.Matches(strVal);
string column1 = null, column2 = null;
string[] column3 = null;
foreach (Match m in matches)
{
Group col = m.Groups["col"];
if (col.Success)
{
switch (col.Value)
{
case "column1":
column1 = m.Groups["val"].Value;
break;
case "column2":
column2 = m.Groups["val"].Value;
break;
case "column3":
column3 = m.Groups["val"].Captures.Cast<capture>().Select(c => c.Value).ToArray();
break;
}
}
}
</capture>
不好意思,ideafixxxer
Sorry for bad style, ideafixxxer
这篇关于动态解析字符串中的子字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!