求一正则表达式

xum1983 2005-07-11 11:48:00
匹配如下字符串:
[#多个任意字符或汉字:多个任意数字#]
请高手指点,谢谢
...全文
305 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
辉说慧语 2005-07-11
  • 打赏
  • 举报
回复
@"^[\u4e00-\u9fa5]+$";
milkbb 2005-07-11
  • 打赏
  • 举报
回复
\[\#\S+:\d+\#\]
yufenfeila 2005-07-11
  • 打赏
  • 举报
回复
^\[\#.+.*:\d\d*\#\]$

试试看
jFresH_MaN 2005-07-11
  • 打赏
  • 举报
回复
string reg=@"^\[[^\]]*:\d*\]$";
soft_biao 2005-07-11
  • 打赏
  • 举报
回复
正则不熟,帮你顶
俞庆平 2005-07-11
  • 打赏
  • 举报
回复
@"\[\#([^\:]+)\:([^\#]+)\#\]";
注意mobydick的这个正则表达式并不完全正确,对于
@"[#产品_0.产品ID:2#][#产品_0.单价:3#][#求和:4#]";
的确匹配,
但对于
@"[#产品_0.产品ID:aaa#][#产品_0.单价:ccc#][#求和:ddd#]";
它也匹配,也就是说,那是充分条件而非必要条件。
cdo 2005-07-11
  • 打赏
  • 举报
回复
string yourStr = @"[#产品_0.产品ID:2#][#产品_0.单价:3#][#求和:4#]";
string regexStr = @"\[\#([^\:]+)\:([^\#]+)\#\]";
MatchCollection mc = Regex.Matches(yourStr, regexStr);
foreach(Match m in mc)
{
string s1 = m.Groups[0].Value;
string s2 = m.Groups[1].Value;

Console.WriteLine("{0} : {1}", s1, s2);
}
wjlrual 2005-07-11
  • 打赏
  • 举报
回复
up
xum1983 2005-07-11
  • 打赏
  • 举报
回复
已经弄好了 谢谢大家!
xum1983 2005-07-11
  • 打赏
  • 举报
回复
string yourStr = @"[#产品_0.产品ID:2#][#产品_0.单价:3#][#求和:4#]";
我已经得到了3个结果
但是要对他们单独进行替换
例如: 将[#产品_0.产品ID:2#]替换成[#产品ID_0@2.1#]
如何实现呢?
俞庆平 2005-07-11
  • 打赏
  • 举报
回复
Regex.Replace Method
xum1983 2005-07-11
  • 打赏
  • 举报
回复
楼上的正解!
如果我想把查到的内容作替换,应该调用什么方法?
俞庆平 2005-07-11
  • 打赏
  • 举报
回复
"[#产品_0.产品ID:2#][#产品_0.单价:3#][#求和:4#]"
使用\[\#[^:]+\:[\d]+\#\]
使用The Regulator得到三个结果。
可以试试。
lovvver 2005-07-11
  • 打赏
  • 举报
回复
/.,;'[]=\}|+.>?#@:%
俞庆平 2005-07-11
  • 打赏
  • 举报
回复
\[\#[^:]+\:[\d]+\#\]
mobydick 2005-07-11
  • 打赏
  • 举报
回复
string yourStr = @"[#产品_0.产品ID:2#][#产品_0.单价:3#][#求和:4#]";
string regexStr = @"\[\#([^\:]+)\:([^\#]+)\#\]";
MatchCollection mc = Regex.Matches(yourStr, regexStr);
foreach(Match m in mc)
{
string s1 = m.Groups[0].Value;
string s2 = m.Groups[1].Value;

Console.WriteLine("{0} : {1}", s1, s2);
}
xum1983 2005-07-11
  • 打赏
  • 举报
回复
大家可以看一下这段字符串
"[#产品_0.产品ID:2#][#产品_0.单价:3#][#求和:4#]"

Regex re = new Regex(this.regStr);
MatchCollection match = re.Matches(temp);

理论上应该返回3段,但每次返回的集合长度都是0,头疼死了。
tqwer 2005-07-11
  • 打赏
  • 举报
回复
同上
silverseven7 2005-07-11
  • 打赏
  • 举报
回复
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
^\[\#.+:\d\d*\#\]$
fphuang 2005-07-11
  • 打赏
  • 举报
回复
^\[\#.+:\d\d*\#\]$
加载更多回复(1)

110,533

社区成员

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

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

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