RegexQuiz - 任务19 - 匹配实体

时间:2013-01-05 22:00:07

标签: regex

我尝试在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

以下是问题:

  

28个测试中的第16个失败:它与实体内的 micro 相匹配。

我不能遵循这个说法。在我的测试中有很多实体,但没有一个是匹配的。有人可以解释发生了什么和/或实体意味着什么?

也很奇怪:RegexQuiz - Task 20 - matching csv

1 个答案:

答案 0 :(得分: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