如何在字符串中的括号内获取单词(java)

时间:2014-10-11 08:25:08

标签: java regex string

我有字符串变量,我希望得到括号内的单词。然后,我想将括号内的单词存储到另一个变量中。最后我想从括号内的单词释放第一个字符串变量。

这是一个例子:

String a = "nemenin yang ngebet sangat ingin belanja  [Mon Sep 22 13:46:19 ICT 2014]";

我希望输出变成这样:

String b = "nemenin yang ngebet sangat ingin belanja";
String c = "[Mon Sep 22 13:46:19 ICT 2014]";

我该怎么做?

5 个答案:

答案 0 :(得分:1)

你可以这样做:

Matcher m = Pattern.compile("(.+)(\\[.+\\])").matcher(a);
if (m.matches())
{
    String b = m.group(1), c = m.group(2);
    // do something
}

答案 1 :(得分:0)

根据空格分割输入字符串,然后打开方括号。

String a = "nemenin yang ngebet sangat ingin belanja  [Mon Sep 22 13:46:19 ICT 2014]";
String tok[]= a.split("\\s+(?=\\[)");
String b = tok[0];
String c = tok[1];
System.out.println(b);
System.out.println(c);

<强>输出:

nemenin yang ngebet sangat ingin belanja
[Mon Sep 22 13:46:19 ICT 2014]

答案 2 :(得分:0)

(.*?)\s*(\[[^\]]*\])

试试这个。抓住cpatures.See演示。

http://regex101.com/r/vR4fY4/7

答案 3 :(得分:-1)

使用以下

String a = "nemenin yang ngebet sangat ingin belanja  [Mon Sep 22 13:46:19 ICT 2014]";
String tok[]=a.split(" \\[");
for(String test:tok){
  System.out.println(test);
}

输出

nemenin yang ngebet sangat ingin belanja 
Mon Sep 22 13:46:19 ICT 2014]

答案 4 :(得分:-1)

试试这个

public static void main(String[] args) {
    String str = "nemenin yang ngebet sangat ingin belanja  [Mon Sep 22 13:46:19 ICT 2014]";

    String strBeforeBracket = str.substring(0, str.lastIndexOf("[") - 1);
    String strInBracket = str.substring(str.lastIndexOf("["),
            str.lastIndexOf("]") + 1);
    System.out.println("String outside bracket  : " + strBeforeBracket);
    System.out.println("String in bracket   : " + strInBracket);
}

输出

String outside bracket  : nemenin yang ngebet sangat ingin belanja 
String in bracket       : [Mon Sep 22 13:46:19 ICT 2014]