繁体   English   中英

如何使用RegEx在c#中的字符串中查找最后一次出现的','

[英]how to find the last occurrence of ',' in a string in c# using RegEx

如何使用RegEx在c#中的字符串中查找最后一次出现的','

我试过下面的代码

string ss = Regex.Replace(strQuery, @"/\,(?<firstMatch>.*)=case(?<secondMatch>.*end\b)", @" case ${secondMatch} ""${firstMatch}"" ", RegexOptions.IgnoreCase);

输入

 SELECT  * FROM (select  TOP 5 ROW_NUMBER() OVER (ORDER BY Region_desc) as ROW_NUM,* from (select *, ROW_NUMBER() over (order by Region_desc desc) as gridviewcount from( SELECT BO_REGION_MASTER.Region_ID,BO_REGION_MASTER.Region_CODE,BO_REGION_MASTER.Region_DESC,STATUS=CASE WHEN BO_REGION_MASTER.STATUS='A' THEN 'ACTIVE' WHEN BO_REGION_MASTER.STATUS='I' THEN 'INACTIVE' ELSE '' END,

我正在输出

SELECT * FROM (select TOP 5 ROW_NUMBER() OVER (ORDER BY Region_desc) as ROW_NUM,* from (select *, ROW_NUMBER() over (order by Region_desc desc) as gridviewcount from( SELECT BO_REGION_MASTER.Region_ID,BO_REGION_MASTER.Region_CODE,BO_REGION_MASTER.Region_DESC,STATUS=CASE WHEN BO_REGION_MASTER.STATUS='A' THEN 'ACTIVE' WHEN BO_REGION_MASTER.STATUS='I' THEN 'INACTIVE' ELSE '' END,

但我需要如下输出

 SELECT  * FROM (select  TOP 5 ROW_NUMBER() OVER (ORDER BY Region_desc) as ROW_NUM,* from (select *, ROW_NUMBER() over (order by Region_desc desc) as gridviewcount from( SELECT BO_REGION_MASTER.Region_ID,BO_REGION_MASTER.Region_CODE,BO_REGION_MASTER.Region_DESC,CASE WHEN BO_REGION_MASTER.STATUS='A' THEN 'ACTIVE' WHEN BO_REGION_MASTER.STATUS='I' THEN 'INACTIVE' ELSE '' END "STATUS",

使用以下正则表达式,然后将匹配项替换为$2 $1,

(?i).*,([^=]*)=(CASE.*),

要么

(?i).*,([^=]*)=(CASE.*end)\b

如果要进行不区分大小写的匹配,请在开头添加不区分大小写的修饰符(?i)

DEMO

string ss = Regex.Replace(strQuery, @".*,([^=]*)=(CASE.*end)\b",  "$2 $1", RegexOptions.IgnoreCase);

DEMO

更新:

(?i)(.*,)([^=]*)=(CASE.*end)\b

替换字符串:

$1$3 "$2"

DEMO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM