在String.Split()中使用正则表达式在java中的{和}之间提取文本

时间:2017-05-13 05:53:42

标签: java regex string

我有一个这样的字符串:

String str = ${farsiName} - {symbolName}

我想使用split方法来查找和提取 farsiName &带有正则表达式的此字符串中的 symbolName 。 我找到了这样的解决方案https://stackoverflow.com/a/4006273/2670847来做这样的事情:

String in = "Item(s): [item1.test],[item2.qa],[item3.production]";

Pattern p = Pattern.compile("\\[(.*?)\\]");
Matcher m = p.matcher(in);

while(m.find()) {
    System.out.println(m.group(1));
}

但我想知道,我可以在String类中使用类似的regex for split方法吗?

3 个答案:

答案 0 :(得分:0)

你走在正确的轨道上。只需更换括号和字符串。

String n ="${farsiName} - {symbolName}";

Pattern p = Pattern.compile("\\{(.*?)\\}");
Matcher m = p.matcher(n);

while(m.find()) {
    System.out.println(m.group(1));
}

答案 1 :(得分:0)

注意:我不建议这样做。正则表达式将更加通用,功能强大。

String n ="${farsiName} - {symbolName}";
String s[] = n.split(" - ");
for(String x : s){
    System.out.println(x.replace("$", "").replace("{", "").replace("}", ""));
}

答案 2 :(得分:0)

public static void main(String[] args){
    String n ="${farstName} - {symbolName}";
    String arr[] = n.split(" - ");
    for(String s : arr){
        System.out.println(s.replace("$", "").replace("{", "").replace("}", ""));
    }
}

使用此代码。它会工作。但我推荐正则表达式。