下载
文档
参与进来
帮助
搜索文档
PHP Conference Japan 2024
入门
简介
一个简单的教程
语言参考
基本语法
类型
变量
常量
表达式
运算符
控制结构
函数
类和对象
命名空间
枚举
错误
异常
纤程
生成器
属性
引用详解
预定义变量
预定义异常
预定义接口和类
预定义属性
上下文选项和参数
支持的协议和包装器
安全
简介
一般注意事项
作为 CGI 二进制文件安装
作为 Apache 模块安装
会话安全
文件系统安全
数据库安全
错误报告
用户提交的数据
隐藏 PHP
保持更新
特性
使用 PHP 进行 HTTP 身份验证
Cookie
会话
处理文件上传
使用远程文件
连接处理
持久数据库连接
命令行用法
垃圾回收
DTrace 动态跟踪
函数参考
影响 PHP 的行为
音频格式操作
身份验证服务
命令行特定扩展
压缩和归档扩展
加密扩展
数据库扩展
日期和时间相关扩展
文件系统相关扩展
人类语言和字符编码支持
图像处理和生成
邮件相关扩展
数学扩展
非文本 MIME 输出
进程控制扩展
其他基本扩展
其他服务
搜索引擎扩展
服务器特定扩展
会话扩展
文本处理
变量和类型相关扩展
Web 服务
仅限 Windows 的扩展
XML 操作
GUI 扩展
键盘快捷键
?
此帮助
j
下一个菜单项
k
上一个菜单项
g p
上一页手册页
g n
下一页手册页
G
滚动到底部
g g
滚动到顶部
g h
转到主页
g s
转到搜索
(当前页面)
/
聚焦搜索框
PCRE 函数 »
« 正则表达式模式中可能的修饰符
PHP 手册
函数参考
文本处理
PCRE
PCRE 模式
更改语言
英语
德语
西班牙语
法语
意大利语
日语
巴西葡萄牙语
俄语
土耳其语
乌克兰语
中文(简体)
其他
Perl 差异
此处描述的差异是相对于 Perl 5.005 的。
默认情况下,空格字符是 C 库函数 isspace() 识别的任何字符,尽管可以使用替代字符类型表编译 PCRE。通常,isspace() 匹配空格、换页符、换行符、回车符、水平制表符和垂直制表符。Perl 5 不再在其空格字符集中包含垂直制表符。Perl 文档中长期存在的 \v 转义符实际上从未被识别过。但是,该字符本身至少在 5.002 之前被视为空格。在 5.004 和 5.005 中,它与 \s 不匹配。
PCRE 不允许在先行断言上使用重复限定符。Perl 允许它们,但它们的意思并非您想象的那样。例如,(?!a){3} 不会断言接下来的三个字符不是“a”。它只是断言下一个字符不是“a”三次。
捕获的子模式出现在否定先行断言中时会被计数,但它们在偏移量向量中的条目永远不会被设置。Perl 从任何此类模式中设置其数值变量,这些模式在断言未能匹配某些内容(从而成功)之前匹配,但前提是否定先行断言仅包含一个分支。
尽管主体字符串中支持二进制零字符,但在模式字符串中不允许它们,因为它是作为正常的 C 字符串传递的,以零结尾。转义序列“\x00”可用于模式中表示二进制零。
以下 Perl 转义序列不受支持:\l、\u、\L、\U。事实上,这些是由 Perl 的通用字符串处理实现的,而不是其模式匹配引擎的一部分。
Perl \G 断言不受支持,因为它与单个模式匹配无关。
很明显,PCRE 不支持(?{code}) 和 (??{code}) 结构。但是,支持递归模式。
在撰写本文时,Perl 5.005_02 中存在一些与模式的一部分重复时捕获字符串的设置相关的奇异之处。例如,将“aba”与模式/^(a(b)?)+$/匹配将 $2 设置为值“b”,但将“aabbaa”与/^(aa(bb)?)+$/匹配将使 $2 未设置。但是,如果模式更改为/^(aa(b(b))?)+$/,则 $2(和 $3)将被设置。在 Perl 5.004 中,这两种情况下 $2 都会被设置,并且 PCRE 也为
true
。如果将来 Perl 更改为不同的稳定状态,PCRE 可能会随之更改。
另一个尚未解决的差异是,在 Perl 5.005_02 中,模式/^(a)?(?(1)a|b)+$/ 与字符串“a”匹配,而在 PCRE 中则不匹配。但是,在 Perl 和 PCRE 中,/^(a)?a/ 与“a”匹配后,$1 未设置。
PCRE 为 Perl 正则表达式功能提供了一些扩展
尽管后顾断言必须匹配固定长度的字符串,但后顾断言的每个备选分支可以匹配不同长度的字符串。Perl 5.005 要求它们都具有相同的长度。
如果设置了
PCRE_DOLLAR_ENDONLY
并且未设置
PCRE_MULTILINE
,则 $ 元字符仅匹配字符串的绝对末尾。
如果设置了
PCRE_EXTRA
,则反斜杠后跟一个没有特殊含义的字母将出错。
如果设置了
PCRE_UNGREEDY
,则重复限定符的贪婪性将被反转,即默认情况下它们不是贪婪的,但如果后面跟着一个问号,则它们是贪婪的。
发现问题?
了解如何改进此页面
•
提交拉取请求
•
报告错误
+
添加注释
用户贡献的注释
此页面没有用户贡献的注释。
↑
和
↓
进行导航 •
Enter
进行选择 •
Esc
关闭
不进行选择直接按
Enter
使用 Google 搜索