Regex 如何在java正则表达式中获取`{`?
鉴于这一案文:Regex 如何在java正则表达式中获取`{`?,regex,string,java-8,Regex,String,Java 8,鉴于这一案文: RULE deviceType=IPHONE_DEVICE&ClientVersion>=4.10 { bla1 \ } RULE deviceType=ANDROID_DEVICE&ClientVersion>=4.5 { bla2 \ } bla1 bla2 我想使用java正则表达式获取以下文本: RULE deviceType=IPHONE_DEVICE&ClientVersion>=4.10 { bla1 \ } RU
RULE deviceType=IPHONE_DEVICE&ClientVersion>=4.10 { bla1 \ }
RULE deviceType=ANDROID_DEVICE&ClientVersion>=4.5 { bla2 \ }
bla1
bla2
我想使用java正则表达式获取以下文本:
RULE deviceType=IPHONE_DEVICE&ClientVersion>=4.10 { bla1 \ }
RULE deviceType=ANDROID_DEVICE&ClientVersion>=4.5 { bla2 \ }
bla1
bla2
我试过:
Pattern pattern = Pattern.compile("(.*?)RULE deviceType=ANDROID_DEVICE&ClientVersion>=4.5 \\{(\\w+)\\ \\}(.*)");
Matcher matcher = pattern.matcher(stringMap);
if (matcher.find()) {
androidSection = matcher.group(1);
}
但代码返回的匹配项为零
我缺少什么?您可以将正则表达式更改为:
RULE deviceType=\w+&ClientVersion>=[\d.]+\h*\{\h*(\w+)\h*\\\h*}
使用Java使用此正则表达式:
final String regex =
"RULE deviceType=\\w+&ClientVersion>=[\\d.]+\\h*\\{\\h*(\\w+)\\h*\\\\\\h*\\}";
{
后面的空格?失败是因为{
后面的空格和单词后面的\
。