2017-07-27 6 views
1

diesen Text gegeben:wie man `{` in Java Regex holt?

RULE deviceType=IPHONE_DEVICE&ClientVersion>=4.10 { bla1 \ } 
RULE deviceType=ANDROID_DEVICE&ClientVersion>=4.5 { bla2 \ } 

Ich möchte java regex verwenden, um diesen Text zu holen:

bla1 
bla2 

ich versucht habe:

Pattern pattern = Pattern.compile("(.*?)RULE deviceType=ANDROID_DEVICE&ClientVersion>=4.5 \\{(\\w+)\\ \\}(.*)"); 
    Matcher matcher = pattern.matcher(stringMap); 
    if (matcher.find()) { 
     androidSection = matcher.group(1); 
    } 

aber der Code zurückgegeben Null Streichhölzer.

Was fehlt mir?

+0

der Raum nach dem '' {? – Fallenhero

+0

Sie versagen wegen des Leerzeichens nach '{' und dem '' 'nach dem Wort. – Tezra

Antwort

1

Sie können Ihre Regex dies ändern:

RULE deviceType=\w+&ClientVersion>=[\d.]+\h*\{\h*(\w+)\h*\\\h*} 

RegEx Demo

Java verwenden Mit dieser regex:

final String regex = 
     "RULE deviceType=\\w+&ClientVersion>=[\\d.]+\\h*\\{\\h*(\\w+)\\h*\\\\\\h*\\}"; 
Verwandte Themen