Widziałem wyrażenie regularne, które mówi: (?i)
. Co to znaczy, gdy umieszczamy znak zapytania przed postacią?O znaku zapytania w wyrażeniu regularnym
Odpowiedz
Ogólnie rzecz biorąc nie oznacza to niczego, a nawet może spowodować błąd (jeśli znak zapytania nie jest zgodny z prawidłowym znakiem). Ale są pewne znaki, które mają wpływ, a mianowicie, czy ta postać jest również używana jako modifier.
regular-expressions.info mówi o tym konkretnym składnią:
Nowoczesne smaki regex pozwalają na zastosowanie modyfikatorów tylko część wyrażenia regularnego. Jeśli wstawisz modyfikator (
?ism
) w środku wyrażenia regularnego, modyfikator ma zastosowanie tylko do części wyrażenia regularnego po prawej stronie modyfikatora. Możesz wyłączyć tryby, poprzedzając je znakiem minus. Wszystkie tryby po znaku minus będą wyłączone. Na przykład. (?i-sm
) włącza niewrażliwość dużych i małych liter oraz wyłącza tryb jedno-liniowy i wielowierszowy.Nie wszystkie smaki regex obsługują to. JavaScript i Python stosują modyfikatory wszystkich modów do całego wyrażenia regularnego. Nie obsługują one składni (
?-ismx
), ponieważ wyłączenie opcji nie ma sensu, gdy modyfikatory trybu mają zastosowanie do całych wyrażeń regularnych. Wszystkie opcje są domyślnie wyłączone.Możesz szybko sprawdzić, w jaki sposób smak regexu, którego używasz, obsługuje modyfikatory trybu. Polecenie regex
(?i)te(?-i)st
powinno być zgodne ztest
iTEst
, ale nie zteST
aniTEST
.
?i
oznacza, że wszystko, co następuje po tych znakach, powinno być dopasowane do wielkości liter bez względu na wielkość liter.
Należy również zauważyć, że zgodnie z tekstem nie wszystkie smaki regex obsługują tę składnię.
- 1. Ucieknij zmiennej w wyrażeniu regularnym
- 2. Czy muszę uciec od znaku kreski w wyrażeniu regularnym?
- 3. Jak zignorować znak Escaped w wyrażeniu regularnym?
- 4. Co [^.] * Oznacza w wyrażeniu regularnym?
- 5. Zezwól - (myślnik) w wyrażeniu regularnym
- 6. Jak używać podwójnych nawiasów w wyrażeniu regularnym?
- 7. Dołącz znaki arabskie w wyrażeniu regularnym JavaScript?
- 8. Co oznacza (? I) w wyrażeniu regularnym .NET?
- 9. Jak określić pojedynczą wycenę w wyrażeniu regularnym
- 10. Wyjaśnienie wyprzedzających w tym wyrażeniu regularnym
- 11. Wpisz znaki opcjonalne w wyrażeniu regularnym
- 12. Co oznacza wyrażenie "?:" W wyrażeniu regularnym
- 13. Ucieczka separator ścieżka w wyrażeniu regularnym
- 14. Jak uciec przed gwiazdką w wyrażeniu regularnym?
- 15. Jak uniknąć znaku "<" w wyrażeniu regularnym w schemacie Solr schema.xml?
- 16. $ w wyrażeniu regularnym nie maching przed końcem linii
- 17. Jak mogę uruchomić wyrażenie regularne w wyrażeniu regularnym w javascript?
- 18. Co oznacza "?:" W wyrażeniu regularnym w języku Python?
- 19. Znaki języków obcych w wyrażeniu regularnym w języku C#
- 20. Niepotrzebna gwiazdka w wyrażeniu regularnym, która znajduje komentarz CSS
- 21. Przekazywanie zmiennej do awk i używanie jej w wyrażeniu regularnym
- 22. Jak mogę zignorować wielkość liter w wyrażeniu regularnym?
- 23. Jak używać klas znaków Emacs w wyrażeniu regularnym?
- 24. Any Way To Escape a Golang String w wyrażeniu regularnym?
- 25. Jak mogę rozwinąć ustawienie lub zmienną w wyrażeniu regularnym vim?
- 26. W wyrażeniu regularnym pasuje do jednej rzeczy lub do obu.
- 27. Co to jest (\ d +)/(\ d +) w wyrażeniu regularnym?
- 28. Jak obsługiwać znaki specjalne w wyrażeniu regularnym Perla?
- 29. Używanie \ t w wyrażeniu regularnym nie działa z wszystkimi zakładkami
- 30. Zastąp wszystkie dopasowania wartościami w regularnym wyrażeniu Ruby
Świetnie! Rozumiem. BTW, to świetna strona internetowa –