一个正式表达式的分割问题。

程式人生2000 2004-07-30 02:22:04
一字符串以“*#”相分割,如:"aaa*#bbb*#ccc*#ddd"

如何用正则判断他们的有效性。


注:中间的字符串(如:aaa,bbb,ccc,ddd)可以为任何字符。我只能做到除*与#号外的字符。如果字符串里有*或#号就出错了。

string pattern = @"^([^\*\#]+)\*\#([^\*\#]+)\*\#([^\*\#]+)\*\#([^\*\#]+)$";
...全文
153 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
程式人生2000 2004-07-31
  • 打赏
  • 举报
回复
原来是我考虑太多了。谢谢思归的提醒(虽然你的正则也不是我要的)。

完成。结贴。顺帖我要的正则。


string pattern = @"^([\s\S]*)\*#([\s\S]*)\*#([\s\S]*)\*#([\s\S]*)$";


saucer 2004-07-31
  • 打赏
  • 举报
回复
try


string[] slist = {"aaa*#bbb*#ccc*#ddd", "a*aa*#bbb*#ccc*#ddd"};;
Regex re = new Regex(@"^.*?(\*#.*?)*$");
foreach (string s in slist)
{
Console.WriteLine("{0} matches? {1}", s, re.IsMatch(s));
}
程式人生2000 2004-07-31
  • 打赏
  • 举报
回复
string pattern = @"^([^\*\#]+)\*\#([^\*\#]+)\*\#([^\*\#]+)\*\#([^\*\#]+)$";
Regex regex = new Regex(pattern);
Match m = regex.Match("aaa*#bbb*#ccc*#ddd");

if(m.Success)
{
……
}
程式人生2000 2004-07-31
  • 打赏
  • 举报
回复
就是判断字符符是否匹配正式。你上面的不是我要的效果。用替换当然可以了。用spilt分割也是可以的。但我要的效果是用正式写一个匹配模式。
Seeko0 2004-07-31
  • 打赏
  • 举报
回复
//分割如下:判断有效性是什么意思?

string text1="aa*a*#bb#b*#ccc*#ddd";
Regex r=new Regex(@"\*#",RegexOptions.Multiline);

string text2 =r.Replace(text1,",");

//输出结果为text2="aa*a,bb#b,ccc,ddd";

62,047

社区成员

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

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

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

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