Допустим, у меня есть строка, которая содержит локальный путь в стиле Unix к файлу, как в следующих примерах:
String s1 = "something something ./files/icon.gif";
String s2 = "The files are texts/text1.txt and texts/text2.txt";
String s3 = "<img src="images/img/run.png" alt="" />"
Итак, мне нужно извлечь только пути к файлам:
"./files/icon.gif"
"texts/text1.txt", "texts/text2.txt"
"images/img/run.png"
Я придумал следующее регулярное выражение:
\.?[[a-zA-Z0-9]*/]+\.[a-zA-Z0-9]+
И он выполняет работу для этих тестовых случаев.
Теперь я беспокоюсь о том, что этот может извлечь другой текст, который не является путем к файлу и выглядит только как один, потому что он имеет косые черты и точки в нужных местах.* Есть ли лучший способ справиться с этой проблемой (возможно, даже без использования регулярных выражений)?