Muszę więc dopasować adres IPv6, który może lub nie może mieć maski. Niestety nie mogę po prostu użyć biblioteki do analizy ciągu.Jak mogę dopasować adresy IPv6 do wyrażenia regularnego Perla?
Bit maska jest dość łatwe, w tym przypadku:
(?:\/\d{1,3})?$/
Najtrudniejsze jest różne formaty adresu IPv6. Trzeba dopasować :: wołowina, wołowina, wołowina :: :: wołowiny itp
an update: jestem prawie tam ..
/^(\:\:([a-f0-9]{1,4}\:){0,6}?[a-f0-9]{0,4}|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){0,6}?\:\:|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){1,6}?\:\:([a-f0-9]{1,4}\:){1,6}?[a-f0-9]{1,4})(\/\d{1,3})?$/i
jestem, w tym przypadku ograniczony do korzystania z Perl regex.
Czy to zadanie domowe? A może nie możesz skorzystać z biblioteki i co sprawia, że mówisz, że jesteś ograniczony do "wyrażeń regularnych perla"? – innaM
Językiem, którego używam, jest perl. Zmiany potrzebne do umożliwienia korzystania z innych bibliotek byłyby więcej pracy. Zdefiniować pracę domową? Jestem w domu i pracuję. Jest to jeden z projektów, nad którymi pracuję - jeśli masz na myśli edukację, to nie. – imnotneo
"Zmiany potrzebne do umożliwienia korzystania z innych bibliotek byłyby więcej pracy." -- Wątpię. Przynajmniej nie na dłuższą metę. Mówiąc ogólnie, Perl bez użycia modułów z CPAN to tylko połowa języka. Odmawianie nawet korzystania z prostych czystych modułów Perla, a następnie proszenie innych o rozwiązania wcześniej rozwiązanych problemów wydaje się ... nieskuteczne. – tsee