如何使用正则表达式获取两个管道之间的所有内容

时间:2011-07-11 06:22:03

标签: java regex

我有一个字符串说

String s =" | India | vs Aus&#34 ;;

在这种情况下,结果应该只是印度

第二种情况:

String s =" Aus vs | India |&#34 ;; 在这种情况下,结果应该只是印度

第3例:

String s =" | India | vs | Aus |" 结果shouls仅包含 India,Aus 。 vs不应出现在输出中。

在这些情况下,可以使用任何其他词代替,例如字符串也可以像这样|印度| in | Aus |。和String也可以像这样|印度|和|斯里兰卡| in | Aus |。我希望在印度,斯里兰卡,澳大利亚这两个管道之间出现这些话。

我想用Java做。

任何指针都会有所帮助。

2 个答案:

答案 0 :(得分:6)

你会使用像...这样的正则表达式。

\|[^|]+\| 

...或...

\|.+?\| 

您必须转义管道,因为管道在正则表达式中具有的特殊含义。

答案 1 :(得分:4)

您正在寻找类似的内容:

    String s = "|India| vs |Aus|";
    Pattern p = Pattern.compile("\\|(.*?)\\|");
    Matcher m = p.matcher(s);
    while(m.find()){
        System.out.println(m.group(1));
    }

您需要使用该组来获取正则表达式中的paranthesis内的内容。