2016-08-30 4 views
-4

В SQL мы можем искать с использованием одинакового ключевого слова. ех,Как использовать соответствие шаблону Regex

1. Pattern 
2. Putty 

Эти слова можно получить с помощью запроса: like 'P_tt%'

Как я могу сделать тот же самый процесс в Java.

+0

пост, что вы пытались –

+0

Можете ли вы принять мой ответ, если он вам помог ? или, пожалуйста, скажите, что я должен исправить. –

+0

'Список tList = новый ArrayList <> (Arrays.asList (новый String [] {" Putty "," Pattern "," Pety "," PPP "," satt "})); \t \t Паттерн p = Pattern.compile ("P_tt \\. *"); \t \t для (String ул: TList) \t \t { \t \t \t Сличитель м = p.matcher (ул); \t \t \t boolean b = m.matches(); \t \t \t log.info ("str >>" + str + "b >>" + b); \t \t} '@Michal - Я пробовал это. Он возвращает только false. Правильно ли это, как я тестировал? – Kannan

ответ

0

Вы можете что-то вроде этого:

String str1 = "MyString lalaa"; 
String str2 = "P_tt other string lala"; 
String pattern = "P_tt\\.*"; 
boolean isInStr1 = str1.matches(pattern); // return false 
boolean isInStr2 = str2.matches(pattern); // return true 

Но имейте в виду, что LIKE не выполняет поиск по регулярным выражением шаблона. В Java вы можете использовать простые шаблоны регулярных выражений. В моем примере я предложил «P_tt\.*», что означает «P_tt» - ваше постоянное слово и «\.» - любой символ (включая пробелы, вкладки и прочее) и * - это итерация среднего количества. * - ноль или больше.

1

Вы можете использовать java.util.regex.Pattern. Пример:

Pattern p = Pattern.compile("a*b"); 
Matcher m = p.matcher("aaaaab"); 
boolean b = m.matches(); 

В вашем случае это будет:

Pattern p = Pattern.compile("P_tt\\.*"); 
Matcher m = p.matcher("aaaaab"); 
boolean b = m.matches(); 

Для дополнительной информации посетите Java документации: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

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