跳转到内容

正则表达式/语法

来自Wikibooks,开放世界中的开放书籍

正则表达式有几种变体。这些变体不仅在具体语法上有所不同,而且在功能上也有所不同。支持正则表达式的各个工具也各有其特点。

贪婪表达式

[编辑 | 编辑源代码]

量词(如 * 和 +)匹配尽可能多的字符:它们是贪婪的。对于某些用途,它们的贪婪性并不合适。例如,假设您想在以下文本中找到第一个用引号括起来的字符串

这些词包括“猫”、“垫”和“拍”。

模式 ".*" 匹配下面文本的斜体部分,即“猫”、“垫”和“拍”,而不是所需的“猫”

这些词包括“猫”、“垫”和“拍”

为了解决这个问题,某些正则表达式风格提供了非贪婪运算符,如 *?、+?和 }?。在 PHP 中,在正则表达式的末尾添加“U”会使量词变为非贪婪,例如 /".*"/U。在不支持这两种选项的风格中,您可以指定要匹配的内容,例如 ("[^"]*") 来修复讨论的示例。但是,在处理括号表达式时,(\[\[[^\]]*\]\]) 无法匹配A B C [[D E] F G]]

比较表

[编辑 | 编辑源代码]

一个比较表或矩阵,显示哪些正则表达式的特性或风格在哪个工具或编程语言中可用,可从 regular-expressions.info 获取。

简介 · 实现

简介 · 正则表达式 · 实现
华夏公益教科书