Регулярное выражение, соответствующее определенной подпапке и игнорирует ее подпапку - PullRequest
1 голос
/ 08 апреля 2019

Я пытаюсь использовать регулярное выражение для сопоставления всех папок, содержащих файл .Trash, но когда мы находим определенную подпапку слоя с .Trash, тогда я не хочу совпадать.

Яиспользуя /[^/]+/*.Trash, но также соответствует подпапке .Trash.
Как можно игнорировать подпапки?

Например:

/a/b/.Trash+other words -> good
/a/b/.Trash  -> good
/a/b/.blahTrash -> good
/a/.Trash -> good
/a/b/.Trash/c/d -> bad, because we already found /a/b/.Trash

Поскольку .Trash также может бытьза которыми следуют другие символы или цифры, поэтому я не могу использовать .Trash, за которым не следует /.

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Вы можете получить представление об этом.

**(.*trash[^\/]+)**

Match 1
1.  /a/b/.Trash+other words -> good
Match 2
1.  /a/b/.Trash -> good
Match 3
1.  /a/b/.blahTrash -> good
Match 4
1.  /a/.Trash -> good

https://rubular.com/r/kGvbSIkHFfT9dM

0 голосов
/ 09 апреля 2019

Вы можете использовать следующее регулярное выражение:

^(?:\/[^\/\s]+)+Trash[^\/]*$

Демо: https://regex101.com/r/lRp4lF/3/

/a/b/.Trash -> good
/a/b/.Trash+other words -> good
/a/b/.Trash  -> good
/a/b/.blahTrash -> good
/a/.Trash -> good
/a/b/.Trash/c/d -> bad
...