2009-03-26 2 views
0

Как я могу сопоставить следующую строку?Регулярное выражение (Java)

http://localhost:8080/MenuTest/index.action 

Регулярное выражение должно возвращать true, если оно содержит «MenuTest» в приведенном выше шаблоне.

Cheers

+0

Твёрдосплавный, это не нужно регулярное выражение , для этого требуется совпадение строк с ванильной связью. – karim79

ответ

9

Возможно, вам не нужно регулярное выражение?

String url = "http://localhost:8080/MenuTest/index.action";  
boolean hasWhatImLookingFor = url.contains("MenuTest"); 
+0

Используйте строчные буквы для переменных: String url = "http: // ....."; – OscarRyz

+0

@ Оскар - Это правда. Исправлена. – karim79

+1

@karim: Теперь вам нужно использовать это строчное имя! :) s/URL.contains/url.contains/иначе это будет хуже, чем раньше. BTW +1 для ответа «простого» подхода :) – OscarRyz

0

Что-то в этом роде? (непроверенные)

Regex r = new Regex("MenuTest"); 
r.search("http://localhost:8080/MenuTest/index.action"); 
System.out.println(""+r.didMatch()); 
+0

а? Regex не является частью стандартного Java API. Из какой из сторонних библиотек это? – toolkit

+0

Я не понимал, но использует com.stevesoft.pat. Не имеет значения, какой пакет regex (вы должны использовать его, поскольку вы говорите, что он не является частью стандартного API), который вы используете, идея такая же, чтобы соответствовать одному слову в строке. – miccet

+5

java.util.regex был частью библиотеки Java уже около семи лет. Нет необходимости в сторонней библиотеке, где будет работать стандарт. –

0

Регулярное выражение, которое вы ищете, просто «MenuTest», без кавычек. Если вопрос не является более сложным, чем кажется?

1

Если вам нужно проверить, если «MenuTest» появляется в этой конкретной позиции (т.е. после того, как хост/порт), то вы можете использовать:

^https?://[^/]++/MenuTest
+1

Хорошее и точное решение :) – patjbs

Смежные вопросы