Załóżmy, że chcę znaleźć w dużym (300 000 liter) wyrazie "psy" z odległością między literami dokładnie 40 000 liter pomiędzy. Więc robię:Perl: "Kwantyfikator {{}} większy niż 32766 w regex"
$mystring =~ m/d.{40000}o.{40000}g.{40000}s/;
to będzie działać całkiem dobrze w innych językach (wolniej), ale w Perl rzuca mnie „kwantyfikator w {} większe niż 32766 w regex”.
Więc:
- możemy użyć większej liczby jako kwantyfikator jakoś?
- Jeśli nie, czy istnieje inny dobry sposób na znalezienie tego, czego chcę? Zauważ, że "psy" to tylko przykład; Chcę to zrobić dla dowolnego słowa i dowolnego rozmiaru skoku (i szybko).
Nicea obejście. Zastanawiałem się nad napisaniem czegoś od zera, ale jest to dla mnie trochę przesada, ponieważ w praktyce wyszukiwania, które przeprowadzę w metodzie regex brute-force, zajmie tylko dziesięć minut, co jest do przyjęcia dla moich zastosowań. –
@GadiA Byłbym ciekawy, czy 'study' poprawi wydajność meczu. –