帮忙写一个正则表达式替换

小小骨头 2017-10-15 12:53:42
输入的文本:
IF(AND(【1】<=40,【2】>=0),"OK","High")

输出文本:
=IF(AND(TV22<=40,TW22>=0),"OK","High")

实现方式:
strOutput.CellFormula = Regex.Replace(strInput, pattern, replacement);

规则:
【1】:TV22
【2】:TW22
以此类推,其中22是可输入的变量,TV,TW是对应excel的列号。
...全文
186 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jshzp 2017-10-17
  • 打赏
  • 举报
回复
 Regex reg = new Regex("TV([0-9]+)");//或者new Regex("TW([0-9]+)")
            Match match = reg.Match(txt);
            if (match.Success)
            {
                【】间的内容= Convert.ToInt32(match.Groups[1].Value);}
小小骨头 2017-10-17
  • 打赏
  • 举报
回复
我要取所有【】间的内容,正则该怎么写呢?
Hello World, 2017-10-16
  • 打赏
  • 举报
回复
可以考虑用R1C1的格式来写公式,不用考虑列号行号,公式又不用变动
  • 打赏
  • 举报
回复
这不就是简单的占位吗?需要正则吗?简单的Replace就可以了
秋的红果实 2017-10-16
  • 打赏
  • 举报
回复
刚才看到一个“500元……”,求自动更新的问题,我写了半天,结果不能提交,帖子没了?害的我写了半天 这帖子触犯什么规则了?
秋的红果实 2017-10-16
  • 打赏
  • 举报
回复
Excel公式,lz直接用excel自带的命令处理就行了
xuzuning 2017-10-16
  • 打赏
  • 举报
回复
        static void Main(string[] args)
{
var txt ="IF(AND(【1】<=40,【2】>=0),\"OK\",\"High\")";
var d = new Dictionary<string,string>();
d.Add("【1】", "TV{0}");
d.Add("【2】", "TW{0}");
var n = 22;
Console.WriteLine(Regex.Replace(txt, @"【\d+】", m => string.Format(d[m.Value], n)));
}

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧