Regex для извлечения определенной строки в URL [duplicate]

Попробуйте

function web_function(event){
     event.stopPropagation();
    // execute a bunch of action to preform
});

function add_ClickEvent() {
   $('#web').on('click', function(event){
       web_function(event)
   });
}

add_ClickEvent() ; //  Adding the click Event

$('#web').off('click'); // click is succesfully removed

add_ClickEvent() ; //  Adding the click Event
137
задан Sébastien Le Callonnec 19 July 2017 в 19:55
поделиться

9 ответов

    String example = "/abc/def/ghfj.doc";
    System.out.println(example.substring(example.lastIndexOf("/") + 1));
225
ответ дан Sébastien Le Callonnec 16 August 2018 в 03:48
поделиться

Вы можете использовать общие домены Apache:

Для подстроки после последнего вхождения используйте этот метод .

И для подстроки после первого эквивалентного метода вхождения является здесь .

7
ответ дан Dev4World 16 August 2018 в 03:48
поделиться
  • 1
    Наконец-то что-то действительно удобное, не знал об этом методе. Ненавижу хлопотать с подстрокой + indexof + 1 - 2 +3. Это намного чище :) – BAERUS 6 February 2018 в 09:05

В Kotlin вы можете использовать substringAfterLast, указав разделитель.

val string = "/abc/def/ghfj.doc"
val result = url.substringAfterLast("/")
println(result)
// It will show ghfj.doc

Из doc :

Возвращает подстроку после последнего появления разделителя. Если строка не содержит разделителя, возвращает missingDelimiterValue, который по умолчанию соответствует исходной строке.

0
ответ дан Filipe de Lima Brito 16 August 2018 в 03:48
поделиться

С помощью Guava вы можете сделать это:

String id="/abc/def/ghfj.doc";
String valIfSplitIsEmpty="";
return Iterables.getLast(Splitter.on("/").split(id),valIfSplitIsEmpty);

В конце концов настройте Splitter и используйте

Splitter.on("/")
.trimResults()
.omitEmptyStrings()
...

Также посмотрите эта статья о разделителях guava и в этой статье о гвавских итерациях

0
ответ дан jschnasse 16 August 2018 в 03:48
поделиться

Я думаю, что было бы лучше, если бы мы непосредственно использовали функцию split

String toSplit = "/abc/def/ghfj.doc";

String result[] = toSplit.split("/");

String returnValue = result[result.length - 1]; //equals "ghfj.doc"
0
ответ дан Luís Cruz 16 August 2018 в 03:48
поделиться
  • 1
    этот код выдает ошибку, если разделитель не найден. – Patrick Parker 24 July 2018 в 20:58

Это также может получить имя файла

import java.nio.file.Paths;
import java.nio.file.Path;
Path path = Paths.get("/abc/def/ghfj.doc");
System.out.println(path.getFileName().toString());

Будет печатать ghfj.doc

3
ответ дан pushya 16 August 2018 в 03:48
поделиться

Очень простая реализация с String.split() :

String path = "/abc/def/ghfj.doc";
// Split path into segments
String segments[] = path.split("/");
// Grab the last segment
String document = segments[segments.length - 1];
35
ответ дан Veger 16 August 2018 в 03:48
поделиться
  • 1
    этот код выдает ошибку «Индекс массива вне границ», если разделитель не найден. – Patrick Parker 24 July 2018 в 20:59

что вы пробовали? это очень просто:

String s = "/abc/def/ghfj.doc";
s.substring(s.lastIndexOf("/") + 1)
30
ответ дан vishal_aim 16 August 2018 в 03:48
поделиться
8
ответ дан Dev4World 6 September 2018 в 02:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: