求一个正则表达式的问题答案

风吹腚腚凉 2017-04-18 09:23:09
用正则表达式查询XML,怎么保证在嵌套中,首尾匹配?
...全文
441 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
风吹腚腚凉 2017-04-19
  • 打赏
  • 举报
回复
引用 23 楼 Forty2 的回复:
[quote=引用 22 楼 wjfwd2010 的回复:] [quote=引用 21 楼 starfd 的回复:] 正则平衡组是可以解决一部分这个问题
答案是反向引用[/quote]
<a>
  <b>
    <![CDATA[ </b> ]]>
    试试这个?
  </b >
</a>
[/quote] 你说的有道理,我已经侮辱了一下出题者。
Forty2 2017-04-19
  • 打赏
  • 举报
回复
引用 22 楼 wjfwd2010 的回复:
[quote=引用 21 楼 starfd 的回复:] 正则平衡组是可以解决一部分这个问题
答案是反向引用[/quote]
<a>
  <b>
    <![CDATA[ </b> ]]>
    试试这个?
  </b >
</a>
风吹腚腚凉 2017-04-19
  • 打赏
  • 举报
回复
引用 21 楼 starfd 的回复:
正则平衡组是可以解决一部分这个问题
答案是反向引用
  • 打赏
  • 举报
回复
正则平衡组是可以解决一部分这个问题
风吹腚腚凉 2017-04-19
  • 打赏
  • 举报
回复
引用 20 楼 wanghui0380 的回复:
如果你朋友这样考你,那么你可以那样考他 如果你认为正则是用来做这种事情的工具,那么请考虑微软vs ide编译器是否是使用”正则“这种工具,来识别C#语法的,既然你们认为正则可以处理有规律的文本,那么好。 C#代码是不是有规律的文本,微软是不是用正则去写编译器的
你这个属于较真了,没必要吧?他就是想炫耀一下他都会反向引用了。我看出来了
风吹腚腚凉 2017-04-18
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
正则平衡组?
不亏是版主一语道破天机!
xuzuning 2017-04-18
  • 打赏
  • 举报
回复
正则平衡组?
风吹腚腚凉 2017-04-18
  • 打赏
  • 举报
回复
引用 2 楼 chifan1100 的回复:
你举个例子,什么数据不匹配。
把所有xml下面的节点都取出来啊,包含嵌套的非嵌套的,所有的数据都取出来啊。 理论上应该是这样的 <a> <a> <b> <a> </a> </b> <c> </c> </a> </a> 反正就是全部都要找到啊。比如最外层的a那么里面所有的标签都应该能取到
chifan1100 2017-04-18
  • 打赏
  • 举报
回复
你举个例子,什么数据不匹配。
风吹腚腚凉 2017-04-18
  • 打赏
  • 举报
回复
我要给自己顶顶,居然没人会? 太难了?这才是中级的正则表达式的问题啊。
wanghui0380 2017-04-18
  • 打赏
  • 举报
回复
如果你朋友这样考你,那么你可以那样考他 如果你认为正则是用来做这种事情的工具,那么请考虑微软vs ide编译器是否是使用”正则“这种工具,来识别C#语法的,既然你们认为正则可以处理有规律的文本,那么好。 C#代码是不是有规律的文本,微软是不是用正则去写编译器的
风吹腚腚凉 2017-04-18
  • 打赏
  • 举报
回复
引用 16 楼 wanghui0380 的回复:
上面那位真正想表达的是,已经有那么多轮子了,为啥要自己重新造一个 对xml解析的工具类,没有几千,也有几百个。就微软自己都有起码4个以上的东西可以解析xml文件 当然如果你一定要自己造轮子的话,如果你能把下面一个链接的东西看明白的话,自己造轮子也是可以得 https://github.com/antlr/grammars-v4/tree/master/xml
我不是在解决问题,而是别人考我的,要求我必须用正则解答出来,而且我可以跟你这么说, 他问我的问题,思路都很奇葩。
风吹腚腚凉 2017-04-18
  • 打赏
  • 举报
回复
引用 16 楼 wanghui0380 的回复:
上面那位真正想表达的是,已经有那么多轮子了,为啥要自己重新造一个 对xml解析的工具类,没有几千,也有几百个。就微软自己都有起码4个以上的东西可以解析xml文件 当然如果你一定要自己造轮子的话,如果你能把下面一个链接的东西看明白的话,自己造轮子也是可以得 https://github.com/antlr/grammars-v4/tree/master/xml
我发现人类本能的对自己的无能表示无法抗拒,不愿意相信这个题目有答案,更愿意相信题目是无答案的。 不是自己想不到,而是题目有问题!不是针对你啊,很多人都这样。
风吹腚腚凉 2017-04-18
  • 打赏
  • 举报
回复
引用 15 楼 stherix 的回复:
[quote=引用 14 楼 wjfwd2010 的回复:] [quote=引用 13 楼 stherix 的回复:] [quote=引用 9 楼 wjfwd2010 的回复:] [quote=引用 8 楼 hjywyj 的回复:] 正则平衡组是能办到,但是你的需求也许不用正则用其他方法更方便。
我不是在做需求,我是在跟朋友扯淡。。。 话说不用平衡组,还要用正则怎么实现?[/quote] 就算用平衡组 也非常难实现(或者无法实现) 因为正则的匹配组无法做到根据不同的匹配文本,来实现不同的命名 既然无法对可能无穷多的匹配项(比如div image a p等等)来区分不同的组命名,那么也无法实现对所有的匹配项进行平衡处理 当然,说不定有大神可能做到,我是没办法[/quote] 恩,那么简单,我还问什么?[/quote] 你似乎认为正则是万能的? 根据我用正则这么多年的经验,这是无解的,因为正则不可能用有限的模式文本实现无穷栈的能力 当然希望能够有大神来打我的脸[/quote] 哈哈,确实有办法,这不是我出的题,别人考我的。
wanghui0380 2017-04-18
  • 打赏
  • 举报
回复
上面那位真正想表达的是,已经有那么多轮子了,为啥要自己重新造一个 对xml解析的工具类,没有几千,也有几百个。就微软自己都有起码4个以上的东西可以解析xml文件 当然如果你一定要自己造轮子的话,如果你能把下面一个链接的东西看明白的话,自己造轮子也是可以得 https://github.com/antlr/grammars-v4/tree/master/xml
stherix 2017-04-18
  • 打赏
  • 举报
回复
引用 14 楼 wjfwd2010 的回复:
[quote=引用 13 楼 stherix 的回复:] [quote=引用 9 楼 wjfwd2010 的回复:] [quote=引用 8 楼 hjywyj 的回复:] 正则平衡组是能办到,但是你的需求也许不用正则用其他方法更方便。
我不是在做需求,我是在跟朋友扯淡。。。 话说不用平衡组,还要用正则怎么实现?[/quote] 就算用平衡组 也非常难实现(或者无法实现) 因为正则的匹配组无法做到根据不同的匹配文本,来实现不同的命名 既然无法对可能无穷多的匹配项(比如div image a p等等)来区分不同的组命名,那么也无法实现对所有的匹配项进行平衡处理 当然,说不定有大神可能做到,我是没办法[/quote] 恩,那么简单,我还问什么?[/quote] 你似乎认为正则是万能的? 根据我用正则这么多年的经验,这是无解的,因为正则不可能用有限的模式文本实现无穷栈的能力 当然希望能够有大神来打我的脸
风吹腚腚凉 2017-04-18
  • 打赏
  • 举报
回复
引用 13 楼 stherix 的回复:
[quote=引用 9 楼 wjfwd2010 的回复:] [quote=引用 8 楼 hjywyj 的回复:] 正则平衡组是能办到,但是你的需求也许不用正则用其他方法更方便。
我不是在做需求,我是在跟朋友扯淡。。。 话说不用平衡组,还要用正则怎么实现?[/quote] 就算用平衡组 也非常难实现(或者无法实现) 因为正则的匹配组无法做到根据不同的匹配文本,来实现不同的命名 既然无法对可能无穷多的匹配项(比如div image a p等等)来区分不同的组命名,那么也无法实现对所有的匹配项进行平衡处理 当然,说不定有大神可能做到,我是没办法[/quote] 恩,那么简单,我还问什么?
stherix 2017-04-18
  • 打赏
  • 举报
回复
引用 9 楼 wjfwd2010 的回复:
[quote=引用 8 楼 hjywyj 的回复:] 正则平衡组是能办到,但是你的需求也许不用正则用其他方法更方便。
我不是在做需求,我是在跟朋友扯淡。。。 话说不用平衡组,还要用正则怎么实现?[/quote] 就算用平衡组 也非常难实现(或者无法实现) 因为正则的匹配组无法做到根据不同的匹配文本,来实现不同的命名 既然无法对可能无穷多的匹配项(比如div image a p等等)来区分不同的组命名,那么也无法实现对所有的匹配项进行平衡处理 当然,说不定有大神可能做到,我是没办法
风吹腚腚凉 2017-04-18
  • 打赏
  • 举报
回复
引用 10 楼 hjywyj 的回复:
[quote=引用 9 楼 wjfwd2010 的回复:] [quote=引用 8 楼 hjywyj 的回复:] 正则平衡组是能办到,但是你的需求也许不用正则用其他方法更方便。
我不是在做需求,我是在跟朋友扯淡。。。 话说不用平衡组,还要用正则怎么实现?[/quote] 简单的正则(例如 </?.*?>)+循环[/quote] 这个不对吧?例如我能理解,但是跟题目不符,正则我也会啊
风吹腚腚凉 2017-04-18
  • 打赏
  • 举报
回复
引用 7 楼 wanghui0380 的回复:
正则有平衡组你可以自己百度,这种知识点要求是非经常使用的人员要求“知道,了解”,不是“掌握,精通” 所以我们实用主义程序员不会去背诵这玩意,你自己百度吧
不用平衡组怎么实现?
加载更多回复(5)

110,539

社区成员

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

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

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