Perl 正则表达式:更多正则表达式规则
Perl 的正则表达式(regex)功能强大且灵活,适合处理文本匹配和替换任务。以下是一些 Perl 正则表达式的重要规则和特性,帮助你更好地理解和使用:
基本匹配
.
: 匹配除换行符以外的任意单个字符。^
: 匹配字符串的开始。$
: 匹配字符串的结束。*
: 匹配前面的字符零次或多次。+
: 匹配前面的字符一次或多次。?
: 匹配前面的字符零次或一次。{n}
: 匹配前面的字符恰好 n 次。{n,}
: 匹配前面的字符至少 n 次。{n,m}
: 匹配前面的字符至少 n 次,至多 m 次。
字符类
[abc]
: 匹配方括号内的任一字符。[^abc]
: 匹配不在方括号内的任一字符。\d
: 匹配数字,等价于[0-9]
。\D
: 匹配非数字字符。\w
: 匹配单词字符(字母、数字、下划线),等价于[a-zA-Z0-9_]
。\W
: 匹配非单词字符。\s
: 匹配空白字符(空格、制表符、换页符等)。\S
: 匹配非空白字符。
分组和捕获
()
: 用于分组并捕获匹配的子字符串。(?:...)
: 非捕获分组,不捕获内容,仅用于分组。(?<name>...)
: 命名捕获,给分组命名。$1
,$2
, ...: 用于引用捕获的分组内容。
位置断言
\b
: 匹配单词边界。\B
: 匹配非单词边界。(?=...)
: 正向肯定预查。(?!...)
: 正向否定预查。(?<=...)
: 反向肯定预查(Perl 5.10及以上支持)。(?<!...)
: 反向否定预查(Perl 5.10及以上支持)。
模式修饰符
/i
: 忽略大小写匹配。/m
: 多行模式,改变^
和$
的行为。/s
: 让.
匹配换行符。/x
: 忽略模式中的空白并允许注释。/g
: 全局匹配,替换所有出现的匹配。
其他特性
- 替换: 用
s/pattern/replacement/
进行替换。 - 匹配操作符:
=~
用于进行模式匹配,例如if ($string =~ /pattern/)
。 - 不匹配操作符:
!~
用于检查不匹配的情况,例如if ($string !~ /pattern/)
。
Perl 的正则表达式功能非常完善,以上只是其中的一些基础规则。在复杂的文本处理任务中,灵活运用这些规则和特性可以帮助你高效解决问题。