正則表達式——不區分大小寫模式


第5章 匹配模式

所謂的匹配模式(match mode),指的是匹配時使用的規則。設置特定的模式,可能會改變對正則表達式的識別,也可能會改變正則表達式中字符的匹配規定。常用的匹配模式一共有4種:不區分大小單行模式多行模式注釋模式

5.1 不區分大小寫模式

  必須首先了解模式的指定方式。通常,有兩種辦法指定匹配模式:以模式修飾指定,或者以預定義的常量作為特俗參數傳入指定。

語言 test
.NET RegexOptions.IgnoreCase
Java Pattern.CASE_INSENSITIVE
JavaScript /regex/i
PHP /regex/i
Python re.I
re.IGNORECASE
Ruby Regexp::IGNORECASE
/regex/i

5.2 單行模式

  單行模式對應的模式修飾符是s(Single line),所以如果用模式修飾符,可以在表達式的開頭用(?s)(Python)指定。

語言 test
.NET RegexOptions.Singleline
Java Pattern.DOTALL
JavaScript 不支持此模式
PHP /regex/s
Python re.S
re.DOTALL
Ruby Regexp::MULTILINE
/regex/m

5.3 多行模式

  單行模式影響的是點號的匹配規則:在默認模式下,點號.可以匹配除換行符之外的任何字符,在單行模式下,點號.可以匹配包括換行符在內的任何字符;多行模式影響的是^和&的匹配規則:在默認模式下,^$匹配的是整個字符串的起始位置和結束位置,但在多行模式下,它們也能匹配字符串內部某一行文本的起始位置和結束位置。

語言 test
.NET RegexOptions.Multiline
Java Pattern.MULTILINE
JavaScript /regex/m
PHP /regex/m
Python re.M
re.MULTILINE
Ruby 默認即為多行模式

5.4 注釋模式

  注釋模式對應的模式修飾符是x(extended mode, 擴展模式,但更常見的寫法是 free-spacing mode,寬松格式模式)。

語言 test
.NET RegexOptions.IgnorePatternWhitespace
Java Pattern.COMMENTS
JavaScript /regex/x
PHP /regex/x
Python re.X
re.VERBOSE
Ruby Regexp::EXTENDED
/regex/x


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM