2017-02-01 4 views
-1

Я пытаюсь соответствовать ключевое слово с следующей строкойJava шаблон регулярного выражения целое слово матч

«АБВ PQR (1), хуг»

Это будет успешным матч, если все одно слово соответствует, например, дл «par» или «abc» или «xyz»

Может ли кто-нибудь помочь мне в создании регулярного выражения для этого матча?

String text = "hello, hellos(1),bye"; 
    String keyword = "account"; 
    String patternString = "["+ keyword + "]"; 

    Pattern pattern = Pattern.compile(patternString, Pattern.CASE_INSENSITIVE); 

    Matcher matcher = pattern.matcher(text); 

    boolean matches = matcher.matches(); 

    System.out.println("matches = " + matches); 
+2

есть некоторые очень полезно ресурсы в сети. Подобно [regex testers] (https://regex101.com/), которые дают вам объяснения при написании вашего регулярного выражения. Довольно приятно, когда вы хотите научиться его использовать. – jhamon

+1

Вы можете попробовать заменить '" ["+ keyword +"] "' на '" \\ b "+ keyword +" \\ b "', и это должно сработать. –

+0

@ Андревин прав, но имейте в виду, что: A) он также найдет слова в круглой скобке B), если между запятыми допустимы составные слова, то любая из них может соответствовать C), если в словах есть дефисы, они также будут рассматриваться как слово барьеры ('\ b'). –

ответ

0

Это должно работать.

([a-zA-Z]+) 

Вход:

"abc,pqr(1),xyz" 

Выход:

abc 
pqr 
xyz 

См: https://regex101.com/r/Us6G3X/2

+0

Спасибо, но это будет соответствовать, если у моего ключевого слова есть алфавиты или нет что Я хочу это: мое ключевое слово = привет строка матч = «Привет, приветы (0), до свидания» он должен соответствовать только привет не приветствий и не в ад – Happy

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