Regex - совпадение строк без включения самих совпадений

Рейтинг: 2Ответов: 1Опубликовано: 26.03.2011
String regex = "href=\"(.*?)\"";

В результате будет строка:

href="http://someurl.ru"

Можно ли написать regex, который не будет включать в себя href=" в начале и " в конце строки? Спасибо.

Ответы

▲ 3Принят

Так вы скобки уберите, либо берите у матчера нулевой результат (вся строка)

UPD

import java.util.regex.*;

public class Main {
    public static void main(String[] args) throws Exception {
        String mySource = "<a href=\"http://test1.ru\" /> <a href=\"http://test2.ru\" />";

        Matcher m = Pattern.compile("href=\"(.*?)\"").matcher(mySource);

        while(m.find()) {
            MatchResult mr = m.toMatchResult();

            System.out.println(mr.group(0)); // entire match string
            System.out.println(mr.group(1)); // first group 
        }

    }
}

Результат:

cy6ergn0m@cgmachine:~/tests/java/27> javac Main.java
cy6ergn0m@cgmachine:~/tests/java/27> java Main      
href="http://test1.ru"
http://test1.ru
href="http://test2.ru"
http://test2.ru
cy6ergn0m@cgmachine:~/tests/java/27>

UPD2

Ссылки: