如何使用regex.匹配c#
本文关键字:匹配 regex 何使用 | 更新日期: 2024-10-21 14:32:29
如何使用regex。匹配
输入字符串
string strQuery = "BO_WEEKOFF_MASTER.year, week_off_day=case when "+
"BO_WEEKOFF_MASTER.week_off_day ='1' then 'Sunday' "+
"when BO_WEEKOFF_MASTER.week_off_day ='2' then 'Monday' "+
"when BO_WEEKOFF_MASTER.week_off_day ='3' then 'Tuesday' "+
"when BO_WEEKOFF_MASTER.week_off_day ='4' then 'Wednesday' "+
"when BO_WEEKOFF_MASTER.week_off_day ='5' then 'Thursday' "+
"when BO_WEEKOFF_MASTER.week_off_day ='6' then 'Friday' "+
"when BO_WEEKOFF_MASTER.week_off_day ='7' then 'Saturday' "+
"else '' end,"+
"BO_WEEKOFF_MASTER.year, week_off_day=case when "+
"BO_WEEKOFF_MASTER.week_off_day ='1' then 'Sunday' "+
"when BO_WEEKOFF_MASTER.week_off_day ='2' then 'Monday' "+
"when BO_WEEKOFF_MASTER.week_off_day ='3' then 'Tuesday' "+
"when BO_WEEKOFF_MASTER.week_off_day ='4' then 'Wednesday' "+
"when BO_WEEKOFF_MASTER.week_off_day ='5' then 'Thursday' "+
"when BO_WEEKOFF_MASTER.week_off_day ='6' then 'Friday' "+
"when BO_WEEKOFF_MASTER.week_off_day ='7' then 'Saturday' "+
"else '' end,";
我的图案是
MatchCollection words = Regex.Matches(strQuery, @"(?i)?<firstMatch>.*,) (?<secondMatch>[^=]*)=case(?<thirdMatch>.*end'b)");
foreach (Match word in words)
{
strQuery = Regex.Replace(word , @"....", @" ... ", RegexOptions.IgnoreCase);
}
问题是它只匹配一次
我需要低于的输出
BO_WEEKOFF_MASTER.year,
case
when BO_WEEKOFF_MASTER.week_off_day ='1' then 'Sunday'
when BO_WEEKOFF_MASTER.week_off_day ='2' then 'Monday'
when BO_WEEKOFF_MASTER.week_off_day ='3' then 'Tuesday'
when BO_WEEKOFF_MASTER.week_off_day ='4' then 'Wednesday'
when BO_WEEKOFF_MASTER.week_off_day ='5' then 'Thursday'
when BO_WEEKOFF_MASTER.week_off_day ='6' then 'Friday'
when BO_WEEKOFF_MASTER.week_off_day ='7' then 'Saturday'
else ''
end **" week_off_day"** ,
BO_WEEKOFF_MASTER.year,
case
when BO_WEEKOFF_MASTER.week_off_day ='1' then 'Sunday'
when BO_WEEKOFF_MASTER.week_off_day ='2' then 'Monday'
when BO_WEEKOFF_MASTER.week_off_day ='3' then 'Tuesday'
when BO_WEEKOFF_MASTER.week_off_day ='4' then 'Wednesday'
when BO_WEEKOFF_MASTER.week_off_day ='5' then 'Thursday'
when BO_WEEKOFF_MASTER.week_off_day ='6' then 'Friday'
when BO_WEEKOFF_MASTER.week_off_day ='7' then 'Saturday'
else ''
end **"week_off_day"**,
在我犯错误的地方,感谢u
您需要使用捕获组。
Regex.Replace(word , @"('w+)=(case.*?'bend'b)", @"$2 ""$1""", RegexOptions.IgnoreCase);
演示