шаблон Java для URL - PullRequest
       14

шаблон Java для URL

0 голосов
/ 08 ноября 2011

Я хочу читать из файла каждую строку и редактировать только те строки, которые представляют URL-адрес определенного сервера ... Мой код похож на ...

   Scanner ReadIsbn = new Scanner (new FileReader ("C:/Users/...."));        

    Pattern pat = Pattern.compile("http:////www.librarything.com//isbn//");

    while ( ReadIsbn.hasNextLine()){

        String line = ReadIsbn.nextLine();
        Matcher m = pat.matcher(line);
        if (m.matches() == true) {
            EDIT line....

        }

    }

}

И он не работает... На самом деле m.matches () всегда ложно .. В файле, который я даю в качестве ввода, есть строки вроде:

1)   http://www.librarything.com/isbn/0-9616696-7-5.html
2)   http://www.librarything.com/isbn/0-86078-322-7.html
Cultural tourism : how the arts can help market tourism products, how 
blablabla

(я хочу редактировать только первые две строки примера)

Ответы [ 2 ]

2 голосов
/ 08 ноября 2011

Вам не нужно избегать косых черт в вашем шаблоне. Это должно сделать

Pattern pat = Pattern.compile("http://www.librarything.com/isbn/");

Другая проблема заключается в том, что метод matches пытается сопоставить шаблон со всем вводимым текстом. Используйте

 if (m.find()){
        EDIT line....
 }

Если вы просто хотите проверить префикс, как здесь, то вы также можете использовать String # начинается с метод

1 голос
/ 08 ноября 2011

Не работает, потому что метод matches() соответствует полная строка.Вы должны либо добавить .* в конец вашего паттерна

Pattern pat = Pattern.compile("http://www.librarything.com//isbn/.*");

, либо использовать метод 'find ()'.

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

...