跳转到内容

正则表达式/语法

来自维基教科书,开放的书籍,开放的世界

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

贪婪表达式

[编辑 | 编辑源代码]

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

这些词包括“cat”、“mat”和“pat”。

模式 ".*" 匹配下面文本的斜体部分,即 "cat","mat",和 "pat" 而不是所需的 "cat"

这些词包括 "cat","mat",和 "pat"

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

比较表

[编辑 | 编辑源代码]

一个比较表或矩阵,显示了哪些功能或版本的正则表达式在哪些工具或编程语言中可用,可以从 regular-expressions.info 获得。

简介 · 实现

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