Для URL http://questions/ask/stackoverflow.xhtml требуется получение stackoverflow. Каков шаблон, используемый для получения этого имени страницы? Подстроку можно использовать, но я читал, что производительность для шаблона Matcher будет лучше.java pattern для получения имени домена с расширением
ответ
Для этого конкретного URL вы можете использовать:
String url = "http://questions/ask/stackoverflow.xhtml";
String pname = url.split("/")[4].split("\\.")[0];
Для более полезным (с точки зрения регулярное выражение не в производительности) решение на основе Узор считают это:
String url = "http://questions/ask/stackoverflow.xhtml";
Pattern pt = Pattern.compile("/(?![^/]*/)([^.]*)\\.");
Matcher matcher = pt.matcher(url);
if(matcher.find()) {
System.out.println("Matched: [" + matcher.group(1) + ']');
// prints Matched: [stackoverflow]
}
Я предположил бы, что решение с регулярными выражениями будет более сложным (и, вероятно, более медленным). Вот как я хотел бы сделать это без них:
public static String getFilename(String s) {
int lastSlash = s.lastIndexOf("/");
if (lastSlash < 0) return null;
int nextDot = s.indexOf(".", lastSlash);
return s.substring(lastSlash+1, (nextDot<0) ? s.length() : nextDot);
}
String url = "http://questions/ask/stackoverflow.xhtml";
getFilename(url); // => "stackoverflow"
Конечно, если URL не имеет имя файла, то вы получите имя хоста вместо этого. Вероятно, вам лучше всего разобрать URL, извлечь часть файла и удалить путь и расширение. Что-то вроде этого:
public static String getFilename2(String s) {
URL url = null;
try {
url = new URL(s);
} catch (MalformedURLException mue) { return null; }
String filePart = url.getFile();
if (filePart.equals("")) return "";
File f = new File(filePart);
String filename = f.getName();
int lastDot = filename.lastIndexOf(".");
return (lastDot<0) ? filename : filename.substring(0, lastDot);
}
с использованием объекта 'URL' - это самый правильный способ сделать это, он будет корректно обрабатывать ** любой корректно сформированный URL-адрес, некоторое ad-hoc-regex будет где-то сломаться. –
- 1. Нужен код C# для получения имени домена
- 2. Regex для получения правильного имени класса java
- 3. Java regex для извлечения имени домена?
- 4. Perl API для получения домена домена
- 5. правило Htaccess для получения и установки параметра после имени домена
- 6. Java-программа для получения имени системы Windows
- 7. Codeigniter Маршруты для имени файла с расширением
- 8. Согласование имени файла перед расширением «.» В Java
- 9. Проверка имени файла с расширением
- 10. Выражение выражения для получения имени файла
- 11. Pattern Matcher для Java
- 12. Htaccess для имени домена с одной подкаталогом
- 13. с использованием имени домена для каждого пользователя?
- 14. Расширение Java с расширением
- 15. Regex pattern для определения точного имени файла
- 16. SQL-запрос для получения только имени изображения с расширением без полного пути из таблицы SQL
- 17. delele все файлы с расширением в java
- 18. VbScript для принятия Входы для имени домена
- 19. Как сохранить файлы с расширением имени
- 20. Сравнение имени файла с дополнительным расширением файла
- 21. Nodemailer от имени домена
- 22. Java regex patterns pattern pattern
- 23. cron library для java с расширением
- 24. Пример имени домена для mailgun для nodejs?
- 25. Regex для получения домена по электронной почте
- 26. Об имени домена находят
- 27. getJSON для получения html из перекрестного домена
- 28. Изменение цвета имени файла с расширением Nautilus
- 29. Получение полного имени файла с расширением
- 30. Добавление имени файла перед расширением с ColdFusion
Адрес может быть любым. Но мы должны найти только имя. В этом случае stackoverflow – user679526
Тогда лучше использовать мое решение на основе шаблонов, которое будет работать для любого URL-адреса. – anubhava
** Лучшим ** решением является использование объекта 'URL', который будет работать для всех URL-адресов, которые не принимает во внимание регулярное выражение. –