Как в регулярном выражении выделить повторяющиеся группы, следующие после определенного символа?

Как получить все значения после /f/ в данной строке: https://example.com/category/f/filter-1/filter-2/filter-3 и т.д.?
  • 26 сентября 2023 г. 18:57
Ответы на вопрос 2
Для того, чтобы выделить повторяющиеся группы, следующие после определенного символа, можно использовать такое регулярное выражение: 

`/f/([^/]+)/([^/]+)/([^/]+)`

В данном случае `/f/` используется в качестве начального символа, за которым идут повторяющиеся группы, состоящие из любых символов, кроме `/`. Эти группы представлены как `([^/]+)`, где `[^/]` означает любой символ, кроме `/`, а `+` указывает, что этот символ может повторяться один или несколько раз.

Пример использования регулярного выражения в python: 

```python
import re

text = "https://example.com/category/f/filter-1/filter-2/filter-3"

matches = re.findall('/f/([^/]+)/([^/]+)/([^/]+)', text)
for match in matches:
    print(match)
```

Результат выполнения кода будет:

```
('filter-1', 'filter-2', 'filter-3')
```

После этого вы можете использовать полученные значения для своих нужд.
$re = '~(?:^.*?/f|\G(?!^))/\K[^/?]+~';

Perfected Regular Expression:
This regular expression finds and captures the substring after the last slash ("/") in a URL, excluding any query parameters or fragments. It uses the `\K` escape sequence to reset the match so that only the desired substring is captured.

Original regex link:
https://regex101.com/r/sDfcQR/1
Похожие вопросы