Изменить большую строку - PullRequest
       1

Изменить большую строку

0 голосов
/ 18 августа 2011

У меня есть большая строка в следующем формате -

   <a href="12345.html"><a href="12345.html"><a href="12345.html"><a href="12345.html">
   <a href="12345.html"><a href="12345.html"><a href="12345.html"><a href="12345.html">

Я хочу сохранить все вхождения значения, которые встречаются до .html.Таким образом, выше HTML становится что-то вроде 12345.html, 12345.html, 12345.html, 12345.html, 12345.html, 12345.html, 12345.html, 12345.html

Нужно ли регулярное выражение?или какой-то метод замены.

Спасибо

Ответы [ 3 ]

1 голос
/ 18 августа 2011

На самом деле вам не нужно регулярное выражение, но вы можете использовать базовый класс Matcher:

final String searchString = "12345.html";
final String txt =
"<a href=\"12345.html\"><a href=\"12345.html\"><a href=\"12345.html\"><a href=\"12345.html\">\n"
+ "<a href=\"12345.html\"><a href=\"12345.html\"><a href=\"12345.html\"><a href=\"12345.html\">";
final Matcher matcher = Pattern.compile(searchString, Pattern.LITERAL).matcher(txt);
final StringBuilder sb = new StringBuilder();
while(matcher.find()){
    if(sb.length() > 0) sb.append(',');
    sb.append(matcher.group());
}
System.out.println(sb.toString());

Вывод:

12345.HTML, 12345.html, 12345.html, 12345.html, 12345.html, 12345.html, 12345.html, 12345.html

1 голос
/ 18 августа 2011

Вы можете использовать HTML-анализатор, например Jsoup .

Document doc = Jsoup.parse(yourString);
Elements els = doc.select("a");
for(Element el: els){
    //this only if needs the number without the HTML
    //if not, only el.attr("href")
    if(el.attr("href").contains(".html")){
         String[] parts = el.attr("href").split(".html");
         System.out.println(parts[0]);
    }          
}

Не используйте регулярные выражения для анализа HTML.

0 голосов
/ 18 августа 2011

Если вы обращаетесь к этой строке внутри Java-кода, вы можете разделить строку на разделитель "=". Это приведет к куче строк. Одна строка будет выглядеть как "

Так что шаги: 1.разбить строку, что приведет к массиву строк.2. Выполните итерацию по полученному массиву и найдите шаблон ">

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