0

我尝试在http://www.regex101.com/quiz/上解决测验,并被困在剩下的六个任务中。

任务 #19

在 HTML 页面中,将文本替换micro&micro;. 哦,不要搞砸代码:不要更换内部<the tags>&entities;

我目前的尝试是这个甜蜜的正则表达式:

/(?<=\G|>)([^<>]*?<?)(?:(?<=[^\w&#]|^)(?=[\w#]*)micro(?=[\w#]*;)|micro(?![\w#]*;))(?(?<=<micro)(?!>))/gm

可以在这里测试:http ://www.regex101.com/r/zG2pD3

这是一个问题:

micro测试 16 of 28 失败:它在实体内部匹配。

我无法理解这种说法。在我的测试中有很多实体,但没有一个是匹配的。有人可以解释发生了什么和/或实体是什么意思吗?

也很奇怪:RegexQuiz - 任务 20 - 匹配 csv

4

1 回答 1

0

好的,做到了,测试 16 不再失败。

失败的实体是&asdmicroasd ;. 我对实体内部的空格感到困惑......好吧,这个正则表达式做到了......但没有另一个测试失败^^

/(?<=\G|>)([^<>]*?<?)(?:(?<=[^\w&#\s]|^)(?=[\w#\s]*)micro(?=[\w#\s]*;)|micro(?![\w#\s]*;))(?(?<=<micro)(?!>))/gm

编辑

完成任务...我不会破坏解决方案。如果有人需要帮助,请与我联系。

好吧,这是完成任务时的结果,建议避免通过正则表达式解析 HTML

正确的。请记住,您不应该使用正则表达式来解析 HTML。这是一个描述原因的链接:http: //www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html

于 2013-01-06T12:04:08.107 回答