Можно использовать
/.*[^\/]/
для извлечения строки
"https://www.example.com/folder1/folder2/folder3/folder4"
из
"https://www.example.com/folder1/folder2/folder3/folder4/"
В отличие от этого, это регулярное выражение извлекает всю строку из строк
"https://www.example.com/folder2/folder3/folder4/index.php"
и
"https://www.example.com/folder1/folder2/folder3/folder4"
Обратите внимание, что поскольку регулярные выражения по умолчанию жадные , привязки не нужны. В этом примере .*
в регулярном выражении будет соответствовать всем, кроме последнего форварда sla sh, опять же, потому что он жадный.
В качестве альтернативы можно использовать метод, который преобразует последний символ строки в пустая строка, если это "/"
, возвращающая новую строку, оставляя исходную строку без изменений. Регулярное выражение
/\/\z/
может использоваться для идентификации этого символа, если он присутствует. В Ruby можно написать:
str = "https://www.example.com/folder1/folder2/folder3/folder4/"
str.sub(/\/\z/, '')
#=> "https://www.example.com/folder1/folder2/folder3/folder4"
Мы можем подтвердить, что исходная строка не была затронута:
str
#=> "https://www.example.com/folder1/folder2/folder3/folder4/"