Java Regex:如何使用OR操作来提取子字符串

时间:2014-03-05 09:55:23

标签: java regex string

现在我有一组以下两种格式的字符串(混合在一起):

1. /c/en/SUBSTRING
2. /c/en/SUBSTRING/some_other_string

我想使用单个Java Regex从字符串中提取SUBSTRING。我知道如何为第二种情况做这件事:Pattern.compile("^/c/en/(\\w+)/")。显然我可以使用两个正则表达式,一个用于第一个用例,一个用于第二个用例,然后使用成功的一个。但这是浪费计算。如何考虑第一个案例并使用单个Regex完成任务?

我尝试了"^/c/en/(\\w+)[/|$]""^/c/en/(\\w+)/|$",但它们无效。感谢。

1 个答案:

答案 0 :(得分:2)

只是做:

Pattern.compile("^/c/en/([^/]+)")

并对输入使用Matcher的{​​{1}}。子字符串将在此匹配器.find()中可用。