2015-05-31 1 views
-1

Я попытался создать регулярное выражение, которое поможет мне решить ниже проблемы, но не смог:Как проверить, заканчивается ли слово с помощью круглых слов I.e, используя Java и regex?

Пример слова: mumbai(10)

Регулярное выражение должно проверить, если слово заканчивается скобкой со значением Ie (10) в вышеприведенное слово "Mumbai(10)". И значение должно быть извлечено I.e 10.

Если слово Mum(10)bai, то результаты не должны быть результатом.

+1

Не проще ли просто проверить символы .... 'string.charAt (string.length - 1) == ')'' – Leon

ответ

-1
String string = "mumbai(10)"; 
Pattern p = Pattern.compile("^.*\\((\\d+)\\)$"); 
Matcher m = p.matcher(string); 
if (m.matches()) { 
    System.out.println(m.group(1)); 
} 

^ и $ обозначают начало и конец соответственно. .* просто соответствует чему угодно. Скобки должны быть экранированы, поскольку они представляют собой группу в регулярном выражении, которая используется после этого. Затем захваченную группу можно извлечь, используя m.group(1).

+0

Спасибо, Veluria. Это работает для меня –

1

Вы можете использовать следующее соответствие:

\\((\\d+)\\)$ 

И экстракт группы 1 $1 для значения.

См DEMO

Java код:

String str = "mumbai(10)"; 
Matcher m = Pattern.compile("\\((\\d+)\\)$").matcher(str); 
if (m.find()) { 
    System.out.println(m.group(1)); 
} 
+0

Объясните, пожалуйста, вниз? –

+0

Привет, Картик, нисходящий ответ не о вашем ответе (хотя есть 1 проблема с ним), а только потому, что речь идет о «дайте мне код». –

+0

@stribizhev ohh okk .. :) Кстати, в чем проблема? Я хотел бы улучшить ответ .. спасибо .. –

-1

Вы можете попробовать следующее регулярное выражение,

\((\d+)\)$ 

Demo

Он использует концепцию group capture

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