2013-02-28 164 views

回答

50

(?i)開始不區分大小寫的模式

(?-i)關閉在"Turning Modes On and Off for Only Part of The Regular Expression" section of this page不區分大小寫的模式

的更多信息:

現代正則表達式的味道讓你修飾符適用於只有部分 正則表達式。如果在 正則表達式的中間插入修飾符(?ism),修飾符僅適用於修飾符右側 正則表達式的部分。您可以通過在前面添加 減號來關閉模式。減號後的所有模式都將被關閉。例如。 (?i-sm)打開不區分大小寫,並關閉單線模式和多線模式。

並非所有的正則表達式都支持這一點。 JavaScript和Python將所有 模式修飾符應用於整個正則表達式。他們不支持 (?-ismx)語法,因爲在 模式修飾符適用於整個正則表達式時關閉選項毫無意義。所有選項默認爲關閉 。

您可以快速測試您正在使用的正則表達式處理模式 修飾符。正則表達式(?i)te(? - i)st應該與test和TEst相匹配,但不能與teST或TEST相匹配。

16

(?i)打開不區分大小寫模式,(?-i)將其關閉。

例如,如果你試圖(?i)te(?-i)st,它將匹配測試測試測試,但不測試

+0

感謝您的回答! – Luccas 2013-02-28 21:24:51

2

直接從ruby docs。

正則表達式的最後分隔符後可跟一個或多個單字母選項,用於控制模式如何匹配。

/PAT/I - 忽略大小寫

/PAT /米 ​​- 治療的換行符爲通過匹配的字符。

/PAT/X - 忽略空白和註釋在圖案

/PAT/O - >執行#{}內插僅一次

I,M,和X也可以在 所施加的(?on-off)結構的子表達式級別,該表達式啓用 選項,並禁用 括號括起的表達式的選項。

+1

感謝您的回答! – Luccas 2013-02-28 21:25:53

相關問題