求匹配多个自定义的标签的正则表达式,谢谢。

Dhoopu 2014-01-13 05:31:38
[cms:property name="username1" type="string" ishidden="false"][/cms:property]sdfsdfkkkklll[cms:property name="username2" type="string" ishidden="false"][/cms:property]klkjsldkjflskjfdljalskfj[cms:property name="username3" type="string" ishidden="false"][/cms:property]


类似上面这样的一串文本,怎么通过正则表达式取出以上的3个自定义属性呢。或者有别的办法全部获取出来嘛。,谢谢
...全文
395 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
string str = @"[cms:property name=""username1"" type=""string"" ishidden=""false""][/cms:property]sdfsdfkkkklll[cms:property name=""username2"" type=""string"" ishidden=""false""][/cms:property]klkjsldkjflskjfdljalskfj[cms:property name=""username3"" type=""string"" ishidden=""false""][/cms:property]";
            //循环读取
            foreach (Match m in Regex.Matches(str, @"\[(\S+)(\s*?(?<attr>[^=\[\]\s]+?=['""]?[^'""\s]+?['""])\s*?)*\]\s*?\[\/\1\]"))
            {
                Console.WriteLine("当前标签是:"+m.Groups[1].Value);
                //
                string tag = m.Groups[1].Value;
                //cms:property
                Console.WriteLine(string.Join("|",m.Groups["attr"].Captures.Cast<Capture>().Select(a=>a.Value)));
                List<string> list = m.Groups["attr"].Captures.Cast<Capture>().Select(a => a.Value).ToList();
                /*
                 * 		[0]	"name=\"username1\""	string
		                [1]	"type=\"string\""	string
		                [2]	"ishidden=\"false\""	string

                 */
            }
wayu002 2014-01-14
  • 打赏
  • 举报
回复

string pattern = "(?<=\\[cms:property).*?(?=\\]\\[/cms:property\\])";
MatchCollection mc = Regex.Matches("字符串内容", pattern);
foreach(Match m in mc)
{
string pt = m.ToString();
// do something
}
Dhoopu 2014-01-14
  • 打赏
  • 举报
回复
感谢各位了
Dhoopu 2014-01-13
  • 打赏
  • 举报
回复
引用 8 楼 wyd1520 的回复:
正则SO EASY
求指教,正则就知道一点点皮毛。。惭愧
本拉灯 2014-01-13
  • 打赏
  • 举报
回复
正则SO EASY
Dhoopu 2014-01-13
  • 打赏
  • 举报
回复
引用 6 楼 u012250099 的回复:
我再试试换个思路吧,今天麻痹的加班啥也不愿想,麻痹的产品汪改特麻痹的需求
嗯。多谢你啦。
SiriusGuo 2014-01-13
  • 打赏
  • 举报
回复
我再试试换个思路吧,今天麻痹的加班啥也不愿想,麻痹的产品汪改特麻痹的需求
SiriusGuo 2014-01-13
  • 打赏
  • 举报
回复
引用 4 楼 dupeng0811 的回复:
[quote=引用 3 楼 u012250099 的回复:]
不知是否是你要的,我用到了编组。

恕我愚钝,这样不是把所有的带有 属性的包括html的标签都取到了吗[/quote]

抱歉,不知道是在HTML里。
如果在内嵌在HTML里的话,可以利用你的"[]",先匹配出来。
正则为:\[.*\]

如果要写在一个里,可能麻烦一点,而且不建议这样用,因为这样的正则就是一坨屎。如果你非要用,不要说是我写的。

Dhoopu 2014-01-13
  • 打赏
  • 举报
回复
引用 3 楼 u012250099 的回复:
不知是否是你要的,我用到了编组。
恕我愚钝,这样不是把所有的带有 属性的包括html的标签都取到了吗
SiriusGuo 2014-01-13
  • 打赏
  • 举报
回复
不知是否是你要的,我用到了编组。
Dhoopu 2014-01-13
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
首先把[和]替换成<>,然后用标准的xml解析类可得。
那多个用<>这样的正则怎么写能获取到全部的呢。我写的只能获得一个
threenewbee 2014-01-13
  • 打赏
  • 举报
回复
首先把[和]替换成<>,然后用标准的xml解析类可得。

62,039

社区成员

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

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

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

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