C# 正则表达式的问题

            string sqlStr = "SELECT j.hphm,NVL(tjdc.sjhm, thy.sjhm) AS sjhm1,slrq AS sjzz,j.id FROM temp ORDER BY slrq";
            string startString = ",";
            string endString = " AS sjzz";
            Regex rg = new Regex(string.Format("(?<=({0}))[.\\s\\S]*?(?=({1}))",startString,endString), RegexOptions.Multiline | RegexOptions.Singleline);
            MessageBox.Show(rg.Match(sqlStr).Value);


我想通过正则得到 sqlStr 里的字符串 slrq,但得到的结果却是 NVL(tjdc.sjhm, thy.sjhm) AS sjhm1,slrq
估计程序从sqlStr中第一个逗号开始截取,到 AS sjzz 结束。
怎样写这个正则从最接近截止符的逗号开始截取呢  例如:",slrq AS sjzz",得到slrq。
请赐教,谢谢!
 

你那个碰到第一个逗号后开始匹配到后面的内容,用下面的可以


            string sqlStr = "SELECT j.hphm,NVL(tjdc.sjhm, thy.sjhm) AS sjhm1,slrq AS sjzz,j.id FROM temp ORDER BY slrq";
            string startString = ",";
            string endString = " AS sjzz";
            Regex rg = new Regex(string.Format("[^{0}]*?(?=({1}))", startString, endString), RegexOptions.Multiline | RegexOptions.Singleline);
            MessageBox.Show(rg.Match(sqlStr).Value);

 

你是要截取这一段的内容吗?NVL(tjdc.sjhm, thy.sjhm) AS sjhm1

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632