Итак, у меня есть txt-файл, содержащий источник html-страницы (без css, без объявления html5, без js, только html-тегов). Я должен вывести индекс этих строк, содержащий хотя бы закрывающий тег html. Он должен использовать регулярное выражение. Я знаю, как искать закрывающие теги, но не знаю, как их индексировать. Моя первая идея заключалась в том, чтобы разбить исходный код на новый символ строки «\ n». Но тогда я должен скомпилировать помощник в каждой строке. Есть ли другой метод? Благодаря!Вывести строки, содержащие закрывающие теги html
ответ
Или с помощью сканера:
Pattern p = Pattern.compile("</[^>]+>");
Scanner s = new Scanner(new BufferedReader(new FileReader("input.txt")));
for (int lineNum=1; s.hasNext(); lineNum++) {
Matcher m = p.matcher(s.next());
if(m.find()){
System.out.println(lineNum);
}
}
Хорошо. Большое спасибо! –
Разделение исходного кода является одним из вариантов, вам не нужно компилировать соответствие каждой строке. Другой вариант - найти совпадения, а затем начать подсчет символов новой строки между ними.
Вот пример, который читает каждую строку файла и выводит, если есть закрывающий тег. Я использую BufferedReader для чтения строки строки за строкой (как описано в вопросе this), а затем посмотрите, какая строка содержит шаблон.
UPDATE 1
Как выше комментарий сказали, что вы не должны использовать регулярное выражение для разбора файла. Если вы хотите это сделать, вы можете, например, использование JSoup. Однако, если вы только хотите сделать то, что вы описали в своем вопросе, регулярное выражение в порядке.
package main;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class GetClosedTagsOfFile {
public static void main(String[] args) throws IOException {
// Open the file.
FileInputStream fis = new FileInputStream("test.html");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
// Compile pattern.
Pattern p = Pattern.compile("</[^>]+>");
// Read the file.
String strLine;
int i = 0;
while ((strLine = br.readLine()) != null) {
i++;
// Check if there is a closing tag.
Matcher m = p.matcher(strLine);
if(m.find())
System.out.println("Line " + i + " contains a closing tag.");
}
// Close the input stream.
fis.close();
br.close();
}
}
Я не могу использовать внешние java-библиотеки, я должен использовать регулярное выражение. Спасибо за ваш ответ! –
@CalanceaBogdan: Мой ответ не использует никаких внешних java-библиотек. JSoup был лишь дополнительным намеком. – Rolch2015
- 1. HTML, закрывающие теги в порядке?
- 2. php/html: заменить html закрывающие теги на новые строки
- 3. Невозможно POST-строки, содержащие фрагментированные теги HTML
- 4. Автоматически непригладимые закрывающие HTML-теги в PyCharm
- 5. Необходимо найти HTML-теги, содержащие другие теги
- 6. Открытие закрывающие теги
- 7. Закрывающие теги с XStream?
- 8. Chrome автоматически кладя закрывающие теги
- 9. отключить закрывающие теги в блокноте ++
- 10. Wordpress удаляет закрывающие теги img
- 11. TagBuilder - закрывающие теги не работают
- 12. XML закрывающие теги неправильно закрытия
- 13. Heredoc и закрывающие теги выпуск
- 14. Закрывающие теги управления Visual Studio
- 15. печати закрывающие теги с Beautiful Soup
- 16. Jade-код, не создающий закрывающие теги
- 17. Закрывающие теги в xsl-методе: xml
- 18. Netbeans неправильно подсветка открытие HTML/закрывающие теги в PHP скрипт
- 19. Regex найти все закрывающие теги html, все открываются отдельно
- 20. PHP Regex, который соответствует HTML-теги начала, но игнорирует HTML-закрывающие теги
- 21. jquery .append автоматически отображает закрывающие теги
- 22. питон BeautifulSoup добавить дополнительные закрывающие теги
- 23. PHP DOMDocument - игнорировать неожиданные закрывающие теги
- 24. Как заменить слова, содержащие HTML-теги, без потери тегов HTML?
- 25. HTML-ориентированные смежные ячейки HTML, содержащие класс
- 26. PHP Tidy и закрывающие теги запроса
- 27. добавить xml закрывающие теги явно используя C#
- 28. Изменение AngularJS открывающие и закрывающие теги
- 29. document.getElementById ("myRewardsHistorydivXML"). InnerHTML затухающие закрывающие теги
- 30. Как мне заставить Dreamweaver показывать закрывающие теги?
вам не придется компилировать сличитель каждую строку. также u может соответствовать всему тексту – eduyayo
вы выиграли сегодняшний джекпот! http://stackoverflow.com/a/1732454/106261 – NimChimpsky