求一正则表达式 匹配字符问题

clever_yang 2008-05-21 11:48:22
最近才开始学习正则表达式,现在碰到一个公式问题:
类似:WS+5+5%+6%....(规则第一个 部分由字符串组成,第二部分由数字组成,第三部分由百分数组成)
写了很久都得不到想要的结果。。。。
希望大虾能帮帮小弟,谢谢了!!!
...全文
122 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
自己取1,2,3组的内容就是


string resultString = null;
try {
resultString = Regex.Replace(subjectString, @"([a-zA-Z]+)\+(\d+)\+(\d+%)", new MatchEvaluator(ComputeReplacement));
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}

public String ComputeReplacement(Match m) {
// You can vary the replacement text for each match on-the-fly
return "";
}

clever_yang 2008-05-21
  • 打赏
  • 举报
回复
我想通过正则表达式将这三部分提取出来。。 希望大虾可以帮帮....
clever_yang 2008-05-21
  • 打赏
  • 举报
回复
非常感谢4楼的回复~。
我的主题没写清楚,不好意思。。。。

其实我是想实现这么一个功能,第一部分是一系列字符串,第二部分是取出公式中的操作符(只有加和减),第三部分是数字(数字包含整数和分数)
类似:
PP+5+5%+52% (取出:PP,5,5%,52%,+,+)然后用来计算,其实我感觉是需要用一个数组来接收的,
因为后面的百分数的数量是不确定的。

也有可能pp+5+5%
PP-5+5%
pt1314917 2008-05-21
  • 打赏
  • 举报
回复

string kk = "ws+5+12%";
Match mt = Regex.Match(kk, @"([^+]*)\+(\d*)\+(\d*%)", RegexOptions.IgnoreCase | RegexOptions.Multiline);
string one = mt.Groups[1].Value; //ws
string two = mt.Groups[2].Value; // 5
string three = mt.Groups[3].Value; //12%
clever_yang 2008-05-21
  • 打赏
  • 举报
回复
2楼可以把ComputeReplacement(Match m) 这个里面的内容也说一下吗? 这样取出来的能分类吗??
我现在是在考虑用((?<operator>[\+|-])(?<expression>\d+(\.\d+)*%?))*$ 这样的来匹配~。。。不过这个好象不能匹配前面的字符串

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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