动态解析字符串中的子字符串 [英] Dynamically parsing substrings out of strings

查看:81
本文介绍了动态解析字符串中的子字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,
我有以下字符串,

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

推荐答案

您想要做的就是 token izing.

最好的方法可能是使用正则表达式.如果您还不了解他们的生活,那么...我想让您记住您在2011年11月12日的去向,因为您的生活即将改变.

30分钟正则表达式教程 [
What you want to do is called tokenizing.

The best way to do this would probably be with regular expressions. If you don''t know what they are yet, well... I want you to remember where you were on November 12, 2011, because your life is about to change.

The 30 Minute Regex Tutorial[^]




您尝试过Regex吗?



Hi,

Have you tried Regex?

Something like

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


这篇关于动态解析字符串中的子字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆