现在我有一组以下两种格式的字符串(混合在一起):
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+)/|$"
,但它们无效。感谢。
答案 0 :(得分:2)
只是做:
Pattern.compile("^/c/en/([^/]+)")
并对输入使用Matcher
的{{1}}。子字符串将在此匹配器.find()
中可用。