我尝试在http://www.regex101.com/quiz/解决测验并且遇到了剩余的六项任务。
在HTML页面中,将文字
micro
替换为µ
。哦,还有 不要搞砸代码:不要替换<the tags>
或&entities;
我目前的尝试是这个甜蜜的正则表达式:
/(?<=\G|>)([^<>]*?<?)(?:(?<=[^\w&#]|^)(?=[\w#]*)micro(?=[\w#]*;)|micro(?![\w#]*;))(?(?<=<micro)(?!>))/gm
可在此处测试:http://www.regex101.com/r/zG2pD3
28个测试中的第16个失败:它与实体内的
micro
相匹配。
我不能遵循这个说法。在我的测试中有很多实体,但没有一个是匹配的。有人可以解释发生了什么和/或实体意味着什么?
答案 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