SELECT FieldList FROM TableName WHERE ConditionList
根据上述语句获取FieldList,TableName,ConditionList,注:SELECT,FROM,WHERE不区分大小写,即: 解析出Select语句的字段列表,表名称,检索数据条件
根据上述语句获取FieldList,TableName,ConditionList,注:SELECT,FROM,WHERE不区分大小写,即: 解析出Select语句的字段列表,表名称,检索数据条件
解决方案 »
- 如何根据数字获取到枚举类型。
- 怎样用c#编写数学模型和算法?
- 正则表达式取出特定的英文单词
- TABLE打印 在FIREFOX下面正常 为什么在IE下面就会有200多页呢
- 导出成Excel的问题
- winform 中两个不同form的 comboBox控件所选择的项,如何取得选项一致?急,在线等~~
- zip文件下载后缺少
- 终于有星,半年了,散分[老大别删我的,我很快就结掉]
- 看了ahui_net (阿灰) 的帖子有感,顺便散分。
- ListView或者DataGrid控件是否有“!点中某条纪录的时候,出现下拉列表框的功能!”,如果有如何实现?
- 我只装了C# 2005 ,为什么新建项目里没有"安装和部署",如何加进去啊?
- 自己定义的类是托管的吗?
egex reg=new Regex(@"select\s+(?<select>\S.+\S)\s+from\s+(?<from>\S.+\S)\s+where\s+(?<where>\S.+\S)",RegexOptions.IgnoreCase);
Match m=reg.Match(strSql);
string strSelect=m.Groups["select"].Value;
string strFrom=m.Groups["from"].Value;
string strWhere=m.Groups["where"].Value;
SELECT 字段列表1 FROM
AA,
(SELECT 字段列表2 FROM BB WHERE 条件) BB
WHERE
AA.A=BB.B
要求能分析出:
"段列表1"
"A,
(SELECT 字段列表2 FROM BB WHERE 条件) BB"
"AA.A=BB.B"
很久没有上网,测试没问题立即结贴,谢谢!
string select = string .Empty;
string from = string .Empty;
string where = string .Empty ;
Match m = Regex.Match(yourStr, @"select\s+(?<select>[\s\S]*?)\s+from\s+(?<from>([^()]*?(\([^()]*\))*[^()]*?)+)\s+where\s+(?<where>[\s\S]*)$", RegexOptions.IgnoreCase);
if (m.Success)
{
select = m.Groups["select"].Value;
from = m.Groups["from"].Value;
where = m.Groups["where"].Value;
}其实这个写的也不严谨,因为这样的需求需要考虑的情况太多,很难做到严谨,只能是有什么样的要求,就给什么样的正则了
AA,
(SELECT 字段列表2 FROM BB WHERE 条件) BB
WHERE
AA.A=BB.B"; string select = string.Empty;
string from = string.Empty;
string where = string.Empty;
Match m = Regex.Match(test, @"select\s+(?<select>[\s\S]*?)\s+from\s+(?<from>([^()]*?(\([^()]*\))*[^()]*?)+)\s+where\s+(?<where>[\s\S]*)$", RegexOptions.IgnoreCase);
if (m.Success)
{
select = m.Groups["select"].Value;
from = m.Groups["from"].Value;
where = m.Groups["where"].Value;
} richTextBox2.Text += select + "\n\n";
richTextBox2.Text += from + "\n\n";
richTextBox2.Text += where + "\n\n";输出:字段列表1AA,
(SELECT 字段列表2 FROM BB WHERE 条件) BBAA.A=BB.B难道不符合你的要求吗?