字符串和空格之间的Java正则表达式匹配

时间:2017-07-10 16:16:14

标签: java regex

我在Java中有以下字符串。

ActivityRecord{7615a77 u0 com.example.grano.example_project/.MainActivity t20}

我需要获取字符串MainActivity,即./和单词后面的空格之间的部分。

所以基本上我正在寻找能够在给定角色和空白区域中捕捉到某些东西的正则表达式。

3 个答案:

答案 0 :(得分:1)

假设您的正在处理的文字没有/在其中并且您要隔离的文字中没有空格,您可以使用此

replaceAll("^[^/]*/\\.([^ ]*).*$","$1"));

从第一个/开始查看,然后是/。然后从该点捕获到第一个空格的所有内容,然后匹配其他所有内容,并用捕获替换所有内容

答案 1 :(得分:1)

您可以使用表达式:

(?<=\/\.)\w+?(?=\s)

细分:

(?<=  \/\.  )
 ^ lookbehind
       ^ for a literal / followed by a literal .

\w  +?
 ^ word character
    ^ one or more (non-greedy)

(?=  \s  )
 ^ lookahead
     ^ a whitespace character

Test it here

答案 2 :(得分:1)

你可以使用像/\.(.*?)\s这样的正则表达式,其模式如下:

String str = ...;
String regex = "/\\.(.*?)\\s";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);

while (matcher.find()) {                                                
    System.out.println(matcher.group(1));
    //-------------------------------^-----get the group (.*?) between '/.' and 'space'
}

<强>输出

MainActivity