0

http://www.regex101.com/quiz/でクイズを解こうとしましたが、残りの6つのタスクで行き詰まりました。

タスク#19

microHTMLページで、テキストを。に置き換えます&micro;。ああ、そしてコードを台無しにしないでください:内部を交換しないでください<the tags>または&entities;

私の現在の試みは、この甘い正規表現です。

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

ここでテストできます:http://www.regex101.com/r/zG2pD3

そしてここに質問があります:

テスト16/28が失敗しました:microエンティティ内で一致しています。

私はこの声明に従うことができません。私のテストには多くのエンティティがあり、どれも一致していません。誰かが何が起こるか、および/またはどのエンティティが意味するかを説明できますか?

また奇妙な: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 に答える