c#正则高手的进来看看这个怎么弄

xinqq163 2011-10-21 03:30:44
<$if:uid value="1">
(admin)
<$else:uid value="2">
liao
<$else>
游客
</$if>

用正则表达式怎么提成出来呢
...全文
144 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinqq163 2011-10-22
  • 打赏
  • 举报
回复
我想用分组的方法提出想要的值,但不知道怎么弄才对。 下面是我弄了点代码。
我就像提取 value=1, 和他们对应的文本 类推value=2 ,不知道我这样写大家理解意思没有, 正则高手出来帮忙下??

MatchCollection mcol = Regex.Matches(getContent, @"(?s)<(\$if|\$else):uid value=""(?<values>.*?)"">(?<htmltxt>[^<]*?)|<\$else>((?<elsetxt>[^<]*?)</\$if>");

string[] MatchValue=new string[mcol.Count];
string[] MatchText = new string[mcol.Count];
string[] Matchetxt = new string[mcol.Count];
for (int i = 0; i < mcol.Count;i++ )
{
MatchValue[i] = mcol[i].Groups["values"].Value;
Response.Write(MatchValue[i]);
MatchText[i] = mcol[i].Groups["htmltxt"].Value;
Matchetxt[i] = mcol[i].Groups["elsetxt"].Value;
}
xinqq163 2011-10-22
  • 打赏
  • 举报
回复
.Cast 这个是是什么 那么复杂的,不理解
yjxsf8313 2011-10-21
  • 打赏
  • 举报
回复
正则。。。。没太深究
jshi123 2011-10-21
  • 打赏
  • 举报
回复
string s = @"<$if:uid value=""1""> ...... ;
var q = Regex.Matches(s, @"(?s)<(\$if|\$else):uid value=""(.*?)"">([^<]*)|<\$else>([^<]*)</\$if>");
Dictionary<string, string> table = q.Cast<Match>().Select(m => m.Groups).ToDictionary(g => g[2].Value, g => ("" + g[3] + g[4]).Trim());

string uid="1";
string value = table.ContainsKey(uid)? table[uid] : table[""];
xinqq163 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wackyboy 的回复:]
C# code

@"(?is)<\$if[^>]*>((?!</\$if>).)*</\$if>"


最好说明你要取什么
[/Quote]
谢谢 wackyboy 可以匹配这个例子了。 在问下,已经知道UID的值怎么才能输出相应的语句呢??
xinqq163 2011-10-21
  • 打赏
  • 举报
回复
这个是在HMTL页面的 上的判断,我就希望用正则来输出判断语句,根据UID的值输出相应的值。 现在我就想要匹配的规则。
我的想法是:
<$if:uid value="1">
(admin)
<$else:uid value="2">
liao
<$else>
游客
</$if>

假设UID=2 那我想再页面输出的值为 liao
就是上面的代码
<$if:uid value="1">
(admin)
<$else:uid value="2">
liao
<$else>
游客
</$if> 输出liao 出来
gxmark 2011-10-21
  • 打赏
  • 举报
回复
楼主要干啥?
yanhongli123 2011-10-21
  • 打赏
  • 举报
回复
没看明白是要什么?什么意思?
wackyboy 2011-10-21
  • 打赏
  • 举报
回复

@"(?is)<\$if[^>]*>((?!</\$if>).)*</\$if>"

最好说明你要取什么
congplayer 2011-10-21
  • 打赏
  • 举报
回复
帮顶!!!

62,046

社区成员

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

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

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

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