正则表达式默认匹配整个文本,这个时候^和$匹配整个文本的开始和结束。
^
$
使用 m多行模式后,匹配每行的开头和结尾;.在默认情况下不匹配换行符,但在s单行模式下能匹配。Go中自带的正则包不支持设置模式。
m
.
s
Go
使用优先匹配(first match)原则
从左到右扫描正则表达式,一旦找到匹配就停止
对于交替选择 (a|b),会按顺序尝试每个选项,选择第一个匹配的
(a|b)
这种行为称为"急切匹配"或"短路匹配"
使用最长左匹配(longest leftmost)原则
尝试所有可能的匹配,然后选择最长的匹配
对于交替选择 (a|b),会评估所有选项,选择能匹配的最长字符串
这种行为确保总是返回最长的可能匹配
标准来源
Perl 语言扩展
IEEE POSIX 标准
匹配方式
贪婪匹配(默认)
最长左匹配
功能丰富度
功能丰富,支持高级特性
功能相对基础
元字符转义
多数元字符需要转义
部分元字符需要转义
扩展支持
支持前瞻、后顾等高级特性
不支持高级扩展
性能
通常更快
可能稍慢
可读性
更灵活但可能更复杂
更简单直观
最后更新于5个月前