2015-12-15 7 views
5

В настоящее время я борюсь с проблемой ловли номера с Regex с помощью JavaИспользование регулярных выражений для извлечения числа в скобках

Строки, которую я пытаюсь поймать числа в этом строковом значении с использованием REGEX является это ...

[TEST][64894]HelloWorld[KGMObilians] 

Мое желание - уловить числа, которые находятся в [].

Возможно ли это с помощью Java? Я мог легко взять число, разделив строку, но компания хочет, чтобы я использовал регулярное выражение, поскольку он более безопасен и быстрее. пожалуйста помогите.

+1

Можете ли вы показать нам, что вы пробовали до сих пор? –

+0

Ответ: «Да, это можно сделать». Вы действительно хотите, чтобы регулярное выражение делало? – Raedwald

ответ

2

Попробуйте это:

String s = "[TEST][64894]HelloWorld[KGMObilians]"; 
Pattern patt = Pattern.compile("\\[\\d+\\]"); 
Matcher match = patt.matcher(s); 

IDEONE DEMO

И если вы не хотите скобки, то просто сделать это как

String s = "[TEST][64894]HelloWorld[KGMObilians]"; 
Pattern patt = Pattern.compile("\\[(\\d+)\\]"); 
Matcher match = patt.matcher(s); 
while(match.find()){ 
    System.out.println(match.group(1)); 
} 

IDEONE DEMO

0

Он берет номер из строки.

String s = "[TEST][64894]HelloWorld[KGMObilians]"; 
    Pattern patt = Pattern.compile("\\[\\d+\\]"); 
    Matcher match = patt.matcher(s); 
    if (match.find()) {   
     String group = match.group(); 
     System.out.println(group.replaceAll("\\[|\\]", "")); 
    }