Привет. Я пытаюсь получить строку из URL.
Я использую регулярное выражение.
String url = "http://localhost/htc/android/htc-incredible/259164-gpid"; Pattern regex = Pattern.compile("^.+/(\\d+)-gpid$"); Matcher tagmatch = regex.matcher( url ); System.out.println(tagmatch.group(0));
Ошибка:
Exception in thread "main" java.lang.IllegalStateException: No match found
Что я делаю не так:
Вам нужно использовать group(1) (содержимое первой группы захвата), а не group(0) (все совпадение).
group(1)
group(0)
О, и, конечно, вам действительно нужно выполнить поиск:
tagmatch.find(); System.out.println(tagmatch.group(1));
Вы можете попробовать это:
String url = "http://localhost/htc/android/htc-incredible/259164-gpid"; url.substring(url.indexOf('/',url.indexOf("htc-incredible/"))+1,url.indexOf("-gpid"));
Кроме того, вы можете использовать lastIndexOf в сочетании с split, чтобы получить ту часть URL, которую вы хотите.Код будет выглядеть так
lastIndexOf
split
url.substring(url.lastIndexOf('/')+1).split("-")[0] //prints 259164