0

字符串 urlString="http://myApp:8080/new/bin/save/SellerMyPage/WebHome"

我想检查上面的字符串是否包含两个正斜杠之间的字符串“MyPage”。它也应该在斜线之间,并且应该以一些字符为前缀。这是我期待的结果

 "http://myApp:8080/new/bin/save/SellerMyPage/WebHome"  should return true
 "http://myApp:8080/new/bin/save/SellerMyPage1/WebHome"  should return false(its not ending with MyPage)
"http://myApp:8080/new/bin/save/MyPage/WebHome"  should return false(MyPage is not prefixed with any any character)

看起来我需要同样使用正则表达式?如果有人可以帮助我解决正则表达式,将不胜感激?

如果它包含,我想在第一种情况下提取该字符串,它应该返回 SellerMyPage

对于提取部分,我使用了下面的代码片段,但对我来说,我不相信它是优化的方式。我确定应该有比这更好的方法吗?

     String extractedElement="";
 String[] urlSpliArray=urlString.split("/");
        for(String urlElement:urlSpliArray)
        if(urlElement.endsWith("MyPage"))
        {
            extractedElement=urlElement;
        }
4

2 回答 2

6
Pattern p = Pattern.compile("^.*/([^/]+MyPage)/.*");
Matcher m = pattern.matcher(urlString);
if (m.find()) {
  extractedElement = m.group(1);
}
于 2012-04-05T06:29:19.930 回答
-1

使用真正的正则表达式PatternMatcher类,不要使用String.split. 您可以使用以下正则表达式(警告:未经测试且未转义以用作字符串):

^.*?([^/]+?MyPage/).*$
于 2012-04-05T06:28:59.903 回答