Powiel możliwe:
A Regex that will never be matched by anythingProste wyrażenie regularne Perla gwarantowane, że nigdy nie będzie zgodne z ciągiem znaków?
Mam skrypt, który pobiera regex jako parametr. Domyślnie chcę ustawić wyrażenie regularne na coś, co nigdy nie będzie pasować do żadnego ciągu, więc mogę po prostu powiedzieć: najpierw trzeba sprawdzić zdefiniowane ($ regex).
wymyśliłem
qr/[^\s\S]/
ale nie wiem, czy to będzie pasowało utf8 jakiś znak, który nie jest ani przestrzeń, ani nie-przestrzeni.
rozwiązanie MJD jest lepiej niż cokolwiek innego oferowanych tutaj lub na rzekome pytanie dup, że to zasługuje być na bieżąco. – tchrist
@tchrist: Z mojego niewątpliwie wąskiego punktu widzenia, prawie wszystko, co MJD, to czyste złoto. Ten człowiek to Perl Alchemik czy coś takiego. – Hugmeir
Aby podświetlić: pusty wzór '//' lub '(? :)' nie zawiera żadnych elementów, dlatego zawsze pasuje. '(?!)' jest ujemnym wyprzedzeniem dla pustego wzorca (to, co przychodzi pomiędzy '!' i '' 'jest ciałem asercji) i dlatego nigdy nie może się równać. – hobbs