Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / java.regex - помогите с выражением!!! / 6 сообщений из 6, страница 1 из 1
23.11.2005, 22:25
    #33395901
java.regex - помогите с выражением!!!
У меня есть текст HTML:

Код: plaintext
assdf ddf fffdds <img src = "images/1.gif"/> assww dqwd <a href=""> asd sdf

И есть regex-выражение:

Код: plaintext
<.+\s+src\s+=\s+"?.+"?>

Я хотел бы получить по регулярному выражению только вот этот текст:

Код: plaintext
<img src = "images/1.gif"/>

А у меня попадает весь последний кусок строки:

Код: plaintext
<img src = "images/1.gif"/> assww dqwd <a href=""> asd sdf

Подскажите, как получить только нужное мне!!!
...
Рейтинг: 0 / 0
24.11.2005, 10:26
    #33396408
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.regex - помогите с выражением!!!
ночной
> У меня есть текст HTML:

> assdf ddf fffdds <img src = "images/1.gif"/> assww dqwd <a href=""> asd sdf

> И есть regex-выражение:

> <.+\s+src\s+=\s+"?.+"?>

> Я хотел бы получить по регулярному выражению только вот этот текст:

> <img src = "images/1.gif"/>

> А у меня попадает весь последний кусок строки:

> <img src = "images/1.gif"/> assww dqwd <a href=""> asd sdf

> Подскажите, как получить только нужное мне!!!Тема==Ответить



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
  Pattern p = Pattern.compile("(<img .*?>)");
  Matcher m = pattern.matcher(text);
  String tag = null;
  if (m.matches()) {
     text =  m.group( 0 );
  }
  



-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
24.11.2005, 12:01
    #33396790
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.regex - помогите с выражением!!!
есть такой документ:

Код: plaintext
1.
2.
<link href=style.css type="text/css" rel="stylesheet"> <!-- 1. -->
<link rel="stylesheet" href="mamba/p1/style.css" type="text/css"> <!-- 2. --> <link rel="stylesheet" href="mamba/p1/style.css" type="text/css"> <!-- 3. -->

надо найти
- тэг link у которого rel=stylesheet (или "stylesheet")
- индекс первого символа значения атрибута href в этом тэге*

--
*
1. href= s tyle.css
2. href=" m amba/p1/style.css"
3. href=" m amba/p1/style.css"
...
Рейтинг: 0 / 0
24.11.2005, 12:24
    #33396905
i
i
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.regex - помогите с выражением!!!
А.Грасоff™есть такой документ:

[snip]
надо найти
- тэг link у которого rel=stylesheet (или "stylesheet")
- индекс первого символа значения атрибута href в этом тэге*

--
*
1. href= s tyle.css
2. href=" m amba/p1/style.css"
3. href=" m amba/p1/style.css"

И в чем проблема?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 import  java.util.regex.*;
 public   class  a {
   public   static   void  main(String[] argv){
    String test="<link href=style.css type=\"text/css\" rel=\"stylesheet\"> <!-- 1. -->"+
    "  <link href=\"mamba/p1/style.css\" type=\"text/css\" rel=\"stylesheet\" >" +
    "<!-- 2. --> <link rel=\"stylesheet\" href=\"mamba/p1/style.css\" type=\"text/css\"> <!-- 3. -->";

    Pattern p = Pattern.compile("<link\\s?[^>]*?\\srel=\"?stylesheet\"?[^>]*?>",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
    Matcher m = p.matcher(test);
    Pattern p2 = Pattern.compile("href=\"?([^\\s>\"]+)\"?",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
    System.out.println(test);
     while (m.find()){
      Matcher m2=p2.matcher(m.group());
       if (m2.find()){
        System.out.println(m2.start( 1 ));
        System.out.println(m2.group( 1 ));
        System.out.println("");
      }
    }
  }
}
...
Рейтинг: 0 / 0
24.11.2005, 12:34
    #33396951
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.regex - помогите с выражением!!!
iИ в чем проблема?в желании использовать один regexp
...
Рейтинг: 0 / 0
24.11.2005, 12:42
    #33396992
i
i
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.regex - помогите с выражением!!!
А.Грасоff™ iИ в чем проблема?в желании использовать один regexp
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 import  java.util.regex.*;
 public   class  a {
   public   static   void  main(String[] argv){
    String test="<link href=style.css type=\"text/css\" rel=\"stylesheet\"> <!-- 1. -->"+
    "  <link href=\"mamba/p1/style.css\" type=\"text/css\" rel=\"stylesheet\" >" +
    "<!-- 2. --> <link rel=\"stylesheet\" href=\"mamba/p1/style.css\" type=\"text/css\"> <!-- 3. -->";

    Pattern p = Pattern.compile("<link(?=\\s?[^>]*?\\srel=\"?stylesheet\"?[^>]*?>)(\\s?[^>]*?\\shref=\"?([^\\s>\"]+)\"?)",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
    Matcher m = p.matcher(test);
    System.out.println(test);
     while (m.find()){
        System.out.println(m.group( 2 ));
        System.out.println("");
    }
  }
}
А вот индекса в теге одним регекспом не получить :(
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / java.regex - помогите с выражением!!! / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]