/ / Czy użyć wyrażenia regularnego w smaku Pythona, aby dopasować (lub wszystkie) przedrostki (ty) bash z ciągu? - python, regex, bash

Użyj wyrażenia regularnego w stylu Pythona, aby dopasować ciąg (y) przedrostka tygla (lub dowolnego) basha. - python, regex, bash

Od https://www.gnu.org/software/bash/manual/html_node/Tilde-Expansion.html o rozszerzeniu tyldy w bash:

Jeśli słowo zaczyna się od niecytowane znak tyldy („~”), wszystkie znaki do pierwszego niecytowane ukośnik (lub wszystkie znaki, jeśli nie ma nie cudzysłowionego ukośnika) są uważane za przedrostek tyldy.

Jak można użyć wyrażenia regularnego w smaku Pythona, aby dopasować (lub wszystkie) przedrostki tyldy z ciągu?

Jeśli ignoruję dwa „niecytowane” wymagania, moim wyrażeniem regularnym jest (~[.*])/ i 1 jest dopasowanym prefiksem tyldy.

Ale nie wiem, jak przedstawić „nieocenione” wymagania.

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz spróbować czegoś takiego:

~[^\/s]*(?:\.[^\/s]*)*

[^\/s]* : zero lub więcej znaków, które nie są ukośnikiem, odwrotnym ukośnikiem lub białym znakiem.

(?:\.[^\/s]*)* : zero lub więcej powtórzeń grupy, która nie przechwytuje, która rozpoczyna się znakiem ucieczki (cytowanym) i jest taka sama jak poprzednio.


1 dla odpowiedzi nr 2
(~[^/]*)

Jest to zgodne z prefiksem tyldy oraz wszystkimi następującymi po sobie nie-ukośnikami.


1 dla odpowiedzi nr 3

Czy to działa dla ciebie?

[^""](~[^/]*) Grupuj wszystko po ~, co nie prowadzi przez pojedynczy lub podwójny cytat do /