这是 perlreref 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
perlreref - Perl 正则表达式参考
商品描述
这是对 Perl 正则表达式的快速参考。 有关完整信息,请参阅 perlre
和 perlop,以及本文档中的“另请参见”部分。
操作员
“=~”确定正则表达式应用于哪个变量。 如果没有,则使用 $_。
$var =~ /foo/;
"!~" 确定正则表达式应用于哪个变量,并否定结果
比赛; 如果匹配成功,则返回 false,如果匹配失败,则返回 true。
$var!~ /foo/;
"m/pattern/msixpogcdualn" 搜索字符串中的模式匹配,应用给定的
选项。
m 多行模式 - ^ 和 $ 匹配内部行
s 匹配为单行 - 。 匹配\n
我不区分大小写
x 扩展的易读性 - 自由空白和评论
p 保留匹配字符串的副本 -
${^PREMATCH}, ${^MATCH}, ${^POSTMATCH} 将被定义。
o 编译模式一次
g 全局 - 所有出现
c 使用 /g 时不要在匹配失败时重置 pos
限制 \d、\s、\w 和 [:posix:] 以仅匹配 ASCII
aa(两个 a)也 /i 匹配排除 ASCII/非 ASCII
l 根据当前locale匹配
u 根据Unicode规则匹配
d 根据本地规则进行匹配,除非另有说明
统一
n 非捕获模式。 不要让 () 填写 $1、$2 等...
如果 'pattern' 是一个空字符串,最后一个 顺利 使用匹配的正则表达式。 分隔符
除了 '/' 可以用于此运算符和以下运算符。 领先的“米”
如果分隔符是“/”,则可以省略。
“qr/pattern/msixpodualn”让你在一个变量中存储一个正则表达式,或者传递一个。
修饰符与“m//”一样,并存储在正则表达式中。
“s/pattern/replacement/msixpogcedual”用“replacement”替换“pattern”的匹配项。
修饰符与“m//”一样,有两个补充:
e 将 'replacement' 评估为表达式
r 返回替换并保持原始字符串不变。
可以多次指定“e”。 'replacement' 被解释为双引号
字符串,除非单引号 ("'") 是分隔符。
“?图案?” 就像 "m/pattern/" 但只匹配一次。 不能有备用分隔符
用过的。 必须用 重启().
句法
\ 转义紧随其后的字符
. 匹配除换行符以外的任何单个字符(除非 /s 是
用过的)
^ 匹配字符串的开头(或行,如果使用 /m)
$ 匹配字符串的末尾(或行,如果使用 /m)
* 匹配前面的元素 0 次或更多次
+ 匹配前面的元素 1 次或多次
? 匹配前面的元素 0 或 1 次
{...} 指定它前面的元素出现的范围
[...] 匹配括号内的任何一个字符
(...) 将用于捕获的子表达式分组为 $1、$2...
(?:...) 分组子表达式而不捕获(集群)
| 匹配前面或后面的子表达式
\g1 或 \g{1}, \g2 ... 匹配第 N 组中的文本
\1, \2, \3 ... 匹配第 N 组的文本
\g-1 或 \g{-1}, \g-2 ... 匹配第 N 个前一组的文本
\g{name} 命名反向引用
\k 命名反向引用
\k'name' 命名反向引用
(?P=name) 命名反向引用(python 语法)
- EP 序列
这些在普通字符串中工作。
\a 警报(哔)
\e 转义
\f 换页
\n 换行
\r 回车
\t 标签
\037 序数为 3 个八进制数字的字符,最大 \777
\o{2307} 序数为八进制数的字符,无限制
\x7f 字符,其序数为 2 个十六进制数字,最大 \xFF
\x{263a} 序数为十六进制数的字符,无限制
\cx 控制-x
\N{name} 一个命名的 Unicode 字符或字符序列
\N{U+263D} 十六进制序数的 Unicode 字符
\l 小写下一个字符
\u Titlecase 下一个字符
\L 小写直到 \E
\U 大写直到 \E
\F 折叠箱直到 \E
\Q 禁用模式元字符直到 \E
\E 结束修改
对于 Titlecase,请参见“Titlecase”。
这个与普通字符串的工作方式不同:
\b 断言,不是退格,字符类除外
字符 课程设置
[amy] 匹配“a”、“m”或“y”
[fj] Dash 指定“范围”
[fj-] Dash 转义或在开始或结束时表示“破折号”
[^fj] 插入符号表示“匹配任何字符 _except_ 这些”
以下序列(“\N”除外)在字符类中或不与字符类中均可使用。 首先
六个是语言环境感知的,都是 Unicode 感知的。 有关详细信息,请参阅 perllocale 和 perlunicode。
\d 一个数字
\DA 非数字
\w 一个单词字符
\WA 非单词字符
\s 一个空白字符
\SA 非空白字符
\h 水平空白
\HA 非水平空白
\NA 非换行符(当后面没有“{NAME}”时;;
在字符类中无效; 相当于 [^\n]; 它是
喜欢 '。' 没有 /s 修饰符)
\v 垂直空格
\VA 非垂直空白
\RA 通用换行符 (?>\v|\x0D\x0A)
\C 匹配一个字节(用Unicode,'.'匹配一个字符)
(已弃用。)
\pP 匹配 P 命名 (Unicode) 属性
\p{...} 匹配名称超过 1 个字符的 Unicode 属性
\PP 匹配非 P
\P{...} 匹配缺少名称超过 1 个字符的 Unicode 属性
\X 匹配 Unicode 扩展字素簇
POSIX 字符类及其 Unicode 和 Perl 等价物:
ASCII- 全-
POSIX 范围范围反斜杠
[[:...:]] \p{...} \p{...} 序列描述
-------------------------------------------------- ---------------------
alnum PosixAlnum XPosixAlnum Alpha 加数字
alpha PosixAlpha XPosixAlpha 字母字符
ascii ASCII 任何 ASCII 字符
空白 PosixBlank XPosixBlank \h 水平空白;
全频也
写成
\p{水平空间} (GNU
延期)
cntrl PosixCntrl XPosixCntrl 控制字符
digit PosixDigit XPosixDigit \d 十进制数字
图 PosixGraph XPosixGraph Alnum plus Punct
下 PosixLower XPosixLower 小写字符
打印 PosixPrint XPosixPrint Graph plus Print,但是
没有任何控制
punct PosixPunct XPosixPunct 标点符号和符号
在 ASCII 范围内; 只是
在它外面打点
空间 PosixSpace XPosixSpace [\s\cK]
PerlSpace XPerlSpace \s Perl 的空格 def'n
上 PosixUpper XPosixUpper 大写字符
word PosixWord XPosixWord \w Alnum + Unicode 标记 +
连接器,如“_”
(Perl 扩展)
xdigit ASCII_Hex_Digit XPosixDigit 十六进制数字,
ASCII 范围是
[0-9A-Fa-f]
此外,各种同义词,如“\p{Alpha}”代表“\p{XPosixAlpha}”; 全部列在“属性
通过 perluniprops 中的 \p{} 和 \P{}" 访问
在字符类中:
POSIX 传统 Unicode
[:数字:] \d \p{数字}
[:^digit:] \D \P{数字}
壁虎
所有都是零宽度断言。
^ 匹配字符串开始(或行,如果使用 /m)
$ 匹配字符串结尾(或行,如果使用 /m)或换行符之前
\b{} 匹配大括号内指定类型的边界
\B{} 在 \b{} 不匹配的地方匹配
\b 匹配词边界(在 \w 和 \W 之间)
\B 匹配除词边界外(在\w 和\w 或\W 和\W 之间)
\A 匹配字符串开始(不考虑 /m)
\Z 匹配字符串结尾(在可选换行符之前)
\z 匹配绝对字符串结尾
\G 匹配前一个 m//g 停止的位置
\K 保留 \K 左侧的内容,不要将其包含在 $& 中
数量词
默认情况下,量词是贪婪的,并且匹配 最长 最左边。
最大最小占有允许范围
------- ------- --------- -------------
{n,m} {n,m}? {n,m}+ 必须至少出现 n 次
但不超过m次
{n,} {n,}? {n,}+ 必须至少出现 n 次
{n} {n}? {n}+ 必须恰好出现 n 次
* *? *+ 0 次或更多次(与 {0,} 相同)
+ +? ++ 1 次或多次(与 {1,} 相同)
? ?? ?+ 0 或 1 次(与 {0,1} 相同)
所有格形式(Perl 5.10 中的新内容)防止回溯:什么被匹配
具有所有格量词的模式不会被回溯到,即使这会导致
整场比赛失败。
没有量词“{,n}”。 这被解释为文字字符串。
EXTENDED 结构体
(?#text) 评论
(?:...) 分组子表达式而不捕获(集群)
(?pimsx-imsx:...) 启用/禁用选项(根据 m// 修饰符)
(?=...) 零宽度正向前瞻断言
(?!...) 零宽度负前瞻断言
(?<=...) 零宽度正回顾断言
(?
(?>...) 抓住我们能做的,禁止回溯
(?|...) 分支重置
(? ...) 命名捕获
(?'name'...) 命名捕获
(?P ...) 命名捕获(python 语法)
(?[...]) 扩展括号字符类
(?{ code }) 内嵌代码,返回值变为$^R
(??{ code }) 动态正则表达式,返回值用作正则表达式
(?N) 递归到子模式数 N
(?-N), (?+N) 递归到第 N 个上一个/下一个子模式
(?R), (?0) 在整个模式的开头递归
(?&name) 递归到一个命名子模式
(?P>name) 递归到命名子模式(python 语法)
(?(cond)是|否)
(?(cond)yes) 条件表达式,其中“cond”可以是:
(?=pat) 前瞻
(?!pat) 负前瞻
(?<=pat) 后视
(?
(N) 子模式 N 匹配了一些东西
( ) 命名的子模式匹配了一些东西
('name') 命名的子模式匹配了一些东西
(?{code}) 代码条件
(R) 如果递归则为真
(RN) 如果递归到第 N 个子模式,则为真
(R&name) 如果递归到命名子模式,则为真
(DEFINE) 始终为 false,不允许使用无模式
变数
$_ 运算符使用的默认变量
$` 匹配字符串之前的所有内容
$& 整个匹配的字符串
$' 匹配字符串之后的所有内容
${^PREMATCH} 匹配字符串之前的所有内容
${^MATCH} 整个匹配的字符串
${^POSTMATCH} 匹配字符串之后的所有内容
仍在使用 Perl 5.18 或更早版本的人请注意:使用 "$`"、$& 或 "$'" 会变慢
所有 在您的程序中使用正则表达式。 请参阅 perlvar 中的“@-”以查看等效表达式
这不会导致减速。 另请参阅 Devel::SawAmpersand。 从 Perl 5.10 开始,您
也可以使用等效变量“${^PREMATCH}”、“${^MATCH}”和“${^POSTMATCH}”,但是
要定义它们,您必须在常规上指定“/p”(保留)修饰符
表达。 在 Perl 5.20 中,使用 "$`"、$& 和 "$'" 没有速度差异。
$1, $2 ... 持有第 X 个捕获的 expr
$+ 最后一个带括号的模式匹配
$^N 保存最近关闭的捕获
$^R 保存最后一个 (?{...}) expr 的结果
@- 组开始的偏移量。 $-[0] 保持整个比赛的开始
@+ 组末端的偏移量。 $+[0] 保持整个比赛的结束
%+ 命名的捕获组
%- 命名的捕获组,作为数组引用
捕获的组根据其编号 开放 父母。
职能
lc 小写字符串
lcfirst 小写字符串的第一个字符
uc 大写字符串
ucfirst Titlecase 字符串的第一个字符
fc 折叠一个字符串
pos 返回或设置当前匹配位置
quotemeta 引用元字符
重置重置?模式? 地位
研究 分析字符串以优化匹配
split 使用正则表达式将字符串拆分为多个部分
其中前五个类似于转义序列“\L”、“\l”、“\U”、“\u”和“\F”。
对于 Titlecase,请参见“Titlecase”; 对于折叠箱,请参见“折叠箱”。
术语
标题框
Unicode 概念通常等于大写,但对于某些字符,例如
德国的“sharp s”是有区别的。
折叠箱
Unicode 形式,在不考虑大小写的情况下比较字符串时很有用
字符具有复杂的一对多大小写映射。 主要是小写的变体。
使用 onworks.net 服务在线使用 perlreref