再次散分咯!!!轻轻松松得分......... 用C#实现 从一个sql文件中取出 所有的关键字.要有完整的实现语句哦 实现后立即结帖................ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Replace方法里的match.Value就是关键字呀!你保存一下就可以了! 假如是1.sql文件,如何从里面取出来所有的关键字,具体到每一个语句 private string pattern = @"\bADD\b|\bEXECUTE\b|\bPRECISION\b|\bALL\b|\bEXISTS\b|\bPRIMARY\b|\bALTER\b|\bEXIT\b|\bPRINT\b|\bAND\b|\bEXTERNAL\b|\bPROC\b|\bANY\b|\bFETCH\b|\bPROCEDURE\b|\bAS\b|\bFILE\b|\bPUBLIC\b|\bASC\b|\bFILLFACTOR\b|\bRAISERROR\b|\bAUTHORIZATION\b|\bFOR\b|\bREAD\b|\bBACKUP\b|\bFOREIGN\b|\bREADTEXT\b|\bBEGIN\b|\bFREETEXT\b|\bRECONFIGURE\b|\bBETWEEN\b|\bFREETEXTTABLE\b|\bREFERENCES\b|\bBREAK\b|\bFROM\b|\bREPLICATION\b|\bBROWSE\b|\bFULL\b|\bRESTORE\b|\bBULK\b|\bFUNCTION\b|\bRESTRICT\b|\bBY\b|\bGOTO\b|\bRETURN\b|\bCASCADE\b|\bGRANT\b|\bREVERTCASE\b|\bGROUP\b|\bREVOKE\b|\bCHECK\b|\bHAVING\b|\bRIGHT\b|\bCHECKPOINT\b|\bHOLDLOCK\b|\bROLLBACK\b|\bCLOSE\b|\bIDENTITY\b|\bROWCOUNT\b|\bCLUSTERED\b|\bIDENTITY_INSERT\b|\bROWGUIDCOL\b|\bCOALESCE\b|\bIDENTITYCOL\b|\bRULE\b|\bCOLLATE\b|\bIF\b|\bSAVE\b|\bCOLUMN\b|\bIN\b|\bSCHEMA\b|\bCOMMIT\b|\bINDEX\b|\bSELECT\b|\bCOMPUTE\b|\bINNER\b|\bSESSION_USER\b|\bCONSTRAINT\b|\bINSERT\b|\bSET\b|\bCONTAINS\b|\bINTERSECT\b|\bSETUSER\b|\bCONTAINSTABLE\b|\bINTO\b|\bSHUTDOWN\b|\bCONTINUE\b|\bIS\b|\bSOME\b|\bCONVERT\b|\bJOIN\b|\bSTATISTICS\b|\bCREATE\b|\bKEY\b|\bSYSTEM_USER\b|\bCROSS\b|\bKILL\b|\bTABLE\b|\bCURRENT\b|\bLEFT\b|\bTABLESAMPLE\b|\bCURRENT_DATE\b|\bLIKE\b|\bTEXTSIZE\b|\bCURRENT_TIME\b|\bLINENO\b|\bTHEN\b|\bCURRENT_TIMESTAMP\b|\bLOAD\b|\bTO\b|\bCURRENT_USER\b|\bNATIONAL\b|\bTOP\b|\bCURSOR\b|\bNOCHECK\b|\bTRAN\b|\bDATABASE\b|\bNONCLUSTERED\b|\bTRANSACTION\b|\bDBCC\b|\bNOT\b|\bTRIGGER\b|\bDEALLOCATE\b|\bNULL\b|\bTRUNCATE\b|\bDECLARE\b|\bNULLIF\b|\bTSEQUAL\b|\bDEFAULT\b|\bOF\b|\bUNION\b|\bDELETE\b|\bOFF\b|\bUNIQUE\b|\bDENY\b|\bOFFSETS\b|\bUNPIVOT\b|\bDESC\b|\bON\b|\bUPDATE\b|\bDISK\b|\bOPEN\b|\bUPDATETEXT\b|\bDISTINCT\b|\bOPENDATASOURCE\b|\bUSE\b|\bDISTRIBUTED\b|\bOPENQUERY\b|\bUSER\b|\bDOUBLE\b|\bOPENROWSET\b|\bVALUES\b|\bDROP\b|\bOPENXML\b|\bVARYING\b|\bDUMMY\b|\bOPTION\b|\bVIEW\b|\bDUMP\b|\bOR\b|\bWAITFOR\b|\bELSE\b|\bORDER\b|\bWHEN\b|\bEND\b|\bOUTER\b|\bWHERE\b|\bERRLVL\b|\bOVER\b|\bWHILE\b|\bESCAPE\b|\bPERCENT\b|\bWITH\b|\bEXCEPT\b|\bPIVOT\b|\bWRITETEXT\b|\bEXEC\b|\bPLAN\b";private void ProcessSqlFile(string fileName){StreamReader sr = new StreamReader(fileName);string line = String.Empty;while ((line = sr.ReadLine()) != null){List<string> lineKeyword = ProcessLine(line);foreach (string keyword in lineKeyword)Console.WriteLine(keyword);}} private List<string> ProcessLine(string line) {List<string> list = new List<string>(); pattern = pattern.Replace("\r\n", "");Regex regKeywords = new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);Match regMatch;for (regMatch = regKeywords.Match(line); regMatch.Success; regMatch = regMatch.NextMatch()){list.Add(regMatch.Value);}return list; } 100分秒送了!!!为什么我和例图不一样?内附完整代码和图!!! winform 地址设置问题 在树型控件中添加右键快捷键,怎样判断是否有选中某一个节点? C#中打印和打印預覽問題 C#获取ASCII码的问题 怎样引用到WebServices项目中类里面的方法.函数?? 关于ComboBox的问题,谢谢各位! c#解析次文件。给怎么写。 winform如何获取被激活的子窗体 急,在线等 求wbxml到xml转换的C#实现 简单但讨厌的编码问题!大侠出手相助啊!难道没办法解决吗?!问的我都没分了
match.Value就是关键字呀!
你保存一下就可以了!
ALTER\b|\bEXIT\b|\bPRINT\b|\bAND\b|\bEXTERNAL\b|\bPROC\b|\bANY\b|\bFETCH\b|\bPROCEDURE\b|\bAS\b|\bFILE\b|\b
PUBLIC\b|\bASC\b|\bFILLFACTOR\b|\bRAISERROR\b|\bAUTHORIZATION\b|\bFOR\b|\bREAD\b|\bBACKUP\b|\bFOREIGN\b|\b
READTEXT\b|\bBEGIN\b|\bFREETEXT\b|\bRECONFIGURE\b|\bBETWEEN\b|\bFREETEXTTABLE\b|\bREFERENCES\b|\bBREAK\b|\b
FROM\b|\bREPLICATION\b|\bBROWSE\b|\bFULL\b|\bRESTORE\b|\bBULK\b|\bFUNCTION\b|\bRESTRICT\b|\bBY\b|\bGOTO\b|\b
RETURN\b|\bCASCADE\b|\bGRANT\b|\bREVERTCASE\b|\bGROUP\b|\bREVOKE\b|\bCHECK\b|\bHAVING\b|\bRIGHT\b|\bCHECKPOINT\b|\b
HOLDLOCK\b|\bROLLBACK\b|\bCLOSE\b|\bIDENTITY\b|\bROWCOUNT\b|\bCLUSTERED\b|\bIDENTITY_INSERT\b|\bROWGUIDCOL\b|\b
COALESCE\b|\bIDENTITYCOL\b|\bRULE\b|\bCOLLATE\b|\bIF\b|\bSAVE\b|\bCOLUMN\b|\bIN\b|\bSCHEMA\b|\bCOMMIT\b|\bINDEX\b|\b
SELECT\b|\bCOMPUTE\b|\bINNER\b|\bSESSION_USER\b|\bCONSTRAINT\b|\bINSERT\b|\bSET\b|\bCONTAINS\b|\bINTERSECT\b|\b
SETUSER\b|\bCONTAINSTABLE\b|\bINTO\b|\bSHUTDOWN\b|\bCONTINUE\b|\bIS\b|\bSOME\b|\bCONVERT\b|\bJOIN\b|\bSTATISTICS\b|\b
CREATE\b|\bKEY\b|\bSYSTEM_USER\b|\bCROSS\b|\bKILL\b|\bTABLE\b|\bCURRENT\b|\bLEFT\b|\bTABLESAMPLE\b|\bCURRENT_DATE\b|\b
LIKE\b|\bTEXTSIZE\b|\bCURRENT_TIME\b|\bLINENO\b|\bTHEN\b|\bCURRENT_TIMESTAMP\b|\bLOAD\b|\bTO\b|\bCURRENT_USER\b|\b
NATIONAL\b|\bTOP\b|\bCURSOR\b|\bNOCHECK\b|\bTRAN\b|\bDATABASE\b|\bNONCLUSTERED\b|\bTRANSACTION\b|\bDBCC\b|\bNOT\b|\b
TRIGGER\b|\bDEALLOCATE\b|\bNULL\b|\bTRUNCATE\b|\bDECLARE\b|\bNULLIF\b|\bTSEQUAL\b|\bDEFAULT\b|\bOF\b|\bUNION\b|\b
DELETE\b|\bOFF\b|\bUNIQUE\b|\bDENY\b|\bOFFSETS\b|\bUNPIVOT\b|\bDESC\b|\bON\b|\bUPDATE\b|\bDISK\b|\bOPEN\b|\b
UPDATETEXT\b|\bDISTINCT\b|\bOPENDATASOURCE\b|\bUSE\b|\bDISTRIBUTED\b|\bOPENQUERY\b|\bUSER\b|\bDOUBLE\b|\bOPENROWSET\b|\b
VALUES\b|\bDROP\b|\bOPENXML\b|\bVARYING\b|\bDUMMY\b|\bOPTION\b|\bVIEW\b|\bDUMP\b|\bOR\b|\bWAITFOR\b|\bELSE\b|\b
ORDER\b|\bWHEN\b|\bEND\b|\bOUTER\b|\bWHERE\b|\bERRLVL\b|\bOVER\b|\bWHILE\b|\bESCAPE\b|\bPERCENT\b|\bWITH\b|\b
EXCEPT\b|\bPIVOT\b|\bWRITETEXT\b|\bEXEC\b|\bPLAN\b";private void ProcessSqlFile(string fileName)
{
StreamReader sr = new StreamReader(fileName);
string line = String.Empty;
while ((line = sr.ReadLine()) != null)
{
List<string> lineKeyword = ProcessLine(line);
foreach (string keyword in lineKeyword)
Console.WriteLine(keyword);
}
} private List<string> ProcessLine(string line)
{
List<string> list = new List<string>();
pattern = pattern.Replace("\r\n", "");
Regex regKeywords = new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
Match regMatch;for (regMatch = regKeywords.Match(line); regMatch.Success; regMatch = regMatch.NextMatch())
{
list.Add(regMatch.Value);
}
return list;
}