2015-05-08 5 views
2

Продолжайте получать совпадение в моем регулярном выражении, не знаете, что пошло не так.Salesforce Apex Regex - @metion

String myString = 'test @abcd efg done' 
Pattern p = Pattern.compile('@(\\w+)\\s(\\w+)'); 
Matcher pm = p.matcher(myString); 
pm.group(); //getting no match error 

Ожидается, что первая группа будет abcd и вторая группа будет efg. Любая идея о том, что не так с моим регулярным выражением?

Любая помощь будет приятной.

Спасибо!

ответ

2

Ваше регулярное выражение в порядке. Ловушка здесь - вам нужно использовать метод matcher.find() перед вызовом matcher.group(). Так что это нормально работает

String myString = 'test @abcd efg done'; 
Pattern p = Pattern.compile('@(\\w+)\\s(\\w+)'); 
Matcher pm = p.matcher(myString); 
if(pm.find()) { 
    System.debug(pm.group(1)); 
} 
+0

Спасибо за помощь. Это было глупо с моей стороны. лол –

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