繁体   English   中英

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

[英]How can I get all content between two pipes using regular expression

我有一个字符串说

String s = "|India| vs Aus";

在这种情况下,结果应该只有India

第二种情况:

字符串 s = "澳大利亚 vs |印度|"; 在这种情况下,结果应该只有India

第三种情况:

字符串 s = "|印度| vs |澳大利亚|" 结果应该只包含India, Aus vs 不应该出现在 output 中。

在这些场景中,可以有任何其他词来代替 vs。例如,字符串也可以是这样的 |India| 在|澳大利亚|。 字符串也可以是这样的 |India| 和|斯里兰卡| 在|澳大利亚|。 我想要出现在两个管道之间的那些词,比如印度、斯里兰卡、澳大利亚。

我想在 Java 中做到这一点。

任何指针都会有所帮助。

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

\|[^|]+\| 

...或者...

\|.+?\| 

您必须转义 pipe 因为 pipe 在正则表达式中具有特殊含义or

您正在查看与此类似的内容:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM