Java регулярное выражение справки - PullRequest
0 голосов
/ 12 января 2011

У меня есть строка в следующем формате, мне нужно только извлечь /jspFolderTestSecondLast/jspFolderTestLast, который является вторым последним, разделенным /.

www.name.com/jspFolderTestOne/jspFolderTestTwo/jspFolderTestAndmanyMore/jspFolderTestSecondLast/jspFolderTestLast

/jspFolderTestSecondLast/jspFolderTestLast, может варьироваться по длине, но всегдаЯ буду разделен последним secong /.

Любая помощь приветствуется.

Спасибо

Ответы [ 5 ]

2 голосов
/ 12 января 2011
String s = "www.name.com/jspFolderTestOne/jspFolderTestTwo/jspFolderTestAndmanyMore/jspFolderTestSecondLast/jspFolderTestLast"
String[] parts = s.split("/");
String whatYouWant = parts[parts.length-2] +"/" + parts[parts.length-1]
1 голос
/ 12 января 2011

Для этого вам не нужны регулярные выражения, поскольку вы можете просто разбить строку на '/' и получить два последних индекса массива.Но в любом случае вот регулярное выражение:

^.+(/[^/]+)(/[^/]+)$

$ 1 содержит первый, а $ 2 содержит второй блок

1 голос
/ 12 января 2011

это версия JavaScript:

"www.name.com/jspFolderTestOne/jspFolderTestTwo/jspFolderTestAndmanyMore/jspFolderTestSecondLast/jspFolderTestLast".search(/\/[^\/]*\/[^\/]*$/)

или вы можете сгруппировать их:

(/(\/[^\/]*)(\/[^\/]*)$/)

1 голос
/ 12 января 2011
    Pattern p = Pattern.compile(".*(/[^/]+/[^/]+)$");
    Matcher m = p.matcher("a/b/c/d.txt");
    if( m.matches() ) {
        System.out.println(m.group(1));
    }
1 голос
/ 12 января 2011
String str = "www.name.com/jspFolderTestOne/jspFolderTestTwo/jspFolderTestAndmanyMore/jspFolderTestSecondLast/jspFolderTestLast";

String are[]  = str.split("/");//may be you need to add escape here
//take last two parts
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...