2013-02-28 14 views

Odpowiedz

50

(?i) uruchamia tryb

(?-i) wielkości liter wyłącza tryb bez uwzględniania wielkości liter

Więcej informacji na "Turning Modes On and Off for Only Part of The Regular Expression" section of this page:

Nowoczesne smaki regex pozwalają na zastosowanie modyfikatorów do tylko część wyrażenie regularne. Jeśli wstawisz modyfikator (? Ism) w środku do regex, modyfikator ma zastosowanie tylko do części regexu do prawa modyfikatora po . Możesz wyłączyć tryby, poprzedzając je znakiem minus minus . Wszystkie tryby po znaku minus będą wyłączone. Na przykład. (? I-sm) włącza niewrażliwość na wielkość liter i wyłącza tryb pojedynczej linii i tryb wieloliniowy.

Nie wszystkie smaki regex obsługują to. JavaScript i Python stosują wszystkie modyfikatory trybu 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żna szybko sprawdzić, jak smak regex używasz trybu modyfikatory uchwyty. Polecenie regex (? I) te (? - i) st powinno pasować do testu i TEst, ale nie do teST lub TEST.

16

(?i) włącza tryb niewrażliwy na wielkość liter tryb, (?-i) wyłącza.

Na przykład, jeśli próbował (?i)te(?-i)st, byłoby dopasować testu, test, test, ale nie test.

+0

dzięki za odpowiedź! – Luccas

2

pobierane bezpośrednio z docs rubinowe.

Ogranicznik końcowy dla regexp może być stosowana przez jednego lub więcej opcji jednoliterowych, które kontrolują w jaki sposób można dopasować wzór.

/pat/i - ignorowanie przypadek

/pat/m - Potraktowano przełamane jako postać dopasowane.

/pat/x - Ignoruj ​​białe znaki i komentarze w strukturze

/pat/O -> Wykonaj # {} interpolacji tylko raz

I, m i X może być również stosowany na na poziom podwyrażenia z konstrukcją (? on-off), która umożliwia włączenie opcji i wyłącza opcje dla wyrażenia zawartego w nawiasach.

+1

dzięki za odpowiedź! – Luccas

Powiązane problemy