加载中…
个人资料
iPan
iPan
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,058,661
  • 关注人气:234
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

正则匹配模式汇总

(2022-10-21 14:22:08)
标签:

这则

匹配

模式

分类: J2EE笔记

所谓的匹配模式(match mode),指的是匹配时使用的规则。设置特定的模式,可能会改变对正则表达式的识别,也可能会改变正则表达式中字符的匹配规定。常用的匹配模式一共有4种:不区分大小单行模式多行模式注释模式

不区分大小写模式

  首先了解模式的指定方式。通常,有两种办法指定匹配模式:以模式修饰指定,或者以预定义的常量作为特俗参数传入指定。

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

单行模式

  单行模式对应的模式修饰符是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

多行模式

  单行模式影响的是点号的匹配规则:在默认模式下,点号.可以匹配除换行符之外的任何字符,在单行模式下,点号.可以匹配包括换行符在内的任何字符;多行模式影响的是^和&的匹配规则:在默认模式下,^$匹配的是整个字符串的起始位置和结束位置,但在多行模式下,它们也能匹配字符串内部某一行文本的起始位置和结束位置。

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

注释模式

  注释模式对应的模式修饰符是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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有