оптимизировать регулярное выражение, которое соответствует двум тегам HTML - PullRequest
0 голосов
/ 07 августа 2010
((<(\\s*?)(object|OBJECT|EMBED|embed))+(.*?)+((object|OBJECT|EMBED|embed)(\\s*?)>))

Мне нужно получить объект и встроить теги из некоторых HTML-файлов, хранящихся локально на диске.Я придумал приведенное выше регулярное выражение, чтобы сопоставить теги в Java, а затем использовать matcher.group (1);получить весь тег и его содержимое

Может кто-нибудь улучшить это?Есть ли что-то, что сразу же бросается вам в глаза, что я должен изменить?

Это работает, кстати, просто хочу, чтобы входные данные посмотрели, может ли он быть лучше, потому что я довольно новичок, чтобы самому себя тестировать.

1 Ответ

2 голосов
/ 07 августа 2010

Да, вот улучшение:

  1. Загрузите полноценный Java HTML-парсер, например Jsoup , и поместите его в classpath.

  2. Теперь вы можете выбрать все элементы <object> и <embed> следующим образом:

    Document document = Jsoup.parse(new File("/path/to/file.html"), "UTF-8");
    Elements elements = document.select("object,embed");
    for (Element element : elements) {
        System.out.println(element.outerHtml());
    }
    

См. Также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...