Powiedzmy mam ciąg znaków:PowerShell Regex - opcjonalny nazwie mecze grupowe
$string1 = "Hello_World:How, are, you:-all -is -well"
chciałbym użyć wyrażenia regularnego, aby dopasować fragmenty napisu oddzielone dwukropkiem użytkownika do wymienionych grup. Na przykład:
$pattern = "(?<first>.*)\:(?<second>.*)\:(?<third>.*)"
Ten wzór będzie pasował $ $ łańcuch1 powodzeniem i chciałbym skończyć z następujących meczów:
first=Hello_World
second=How, are, you
third=-all -is -well
To jest dobre, ale nie jest to problem. Łańcuch $ 1 potencjalnie może nie zawierać trzeciej sekcji, na przykład:
$string1 = "Hello_World:How, are, you"
Niestety ten łańcuch $ 1 nie pasuje już do wzorca regex. Jak zrobić, aby wzorzec dopasował oba formaty ciągu? (tzn. zawsze powinienem mieć mecz "pierwszy" i "drugi", i tylko "trzeci" mecz, jeśli jest dostępny).
Tak, to jest bardziej proste. Waham się jednak dać +1, o ile PO potwierdzi, że różne części nie zawierają ':' - nie, że moje rozwiązanie poprawnie to obsługuje, heh. – fge