Skip to Content
PHP编程:第4版
book

PHP编程:第4版

by Kevin Tatroe, Peter MacIntyre
January 2021
Intermediate to advanced
505 pages
9h 45m
Chinese
Publishing House of Electronics Industry
Content preview from PHP编程:第4版
118
4
字符串
这里唯一的技巧是,要得到一个后向的模式来查看最后一个字符是否是反斜杠,需要转
义反斜杠来防止正则表达式引擎看到表示右小括号的“
\)
”。也就是说,要在反斜杠前面
再加上一个反斜杠“
\\)
”。但
PHP
中引用字符串的规则认为,
\\
将生成一个单独反斜杠,
所以需要通过正则表达式用四个反斜杠来得到一个反斜杠。这就是为什么大家都说正则
表达式难以阅读的原因。
Perl
限制后向断言只能用于固定长度的表达式,即表达式不能包含量词,并且如果使用
选择符(
|
),所有的选择长度都必须相同。
Perl
兼容的正则表达式引擎也禁止在后向断
言中使用量词,但是允许不同长度的选择。
剪切
一次性子模式(
once-only subpattern
)或称为剪切(
cut
)功能很少被用到,这种功能一
旦匹配成功,正则表达式就不会回溯子模式,因此可以防止正则表达式在对待某些类型
的模式时出现最坏的情况。
一次性子模式常用于自身重复的表达式
/(a+|b+)*\.+/
下面的代码要用几秒的时间来报告失败,效率很低
$p = '/(a+|b+)*\.+$/';
$s = 'abababababbabbbabbaaaaaabbbbabbababababababbba..!';
if (preg_match($p, $s)) {
echo "Y";
}
else {
echo "N";
}
这是因为正则表达式引擎试图在所有不同的地方开始匹配,但是不得不回溯每一个部分,
这花费了很长时间。如果你知道一旦有些地方被匹配到,它就不需要回头来解析,那么 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

解密金融数据

解密金融数据

Justin Pauley
算法技术手册(原书第2 版)

算法技术手册(原书第2 版)

George T.Heineman, Gary Pollice, Stanley Selkow
Java持续交付

Java持续交付

Daniel Bryant, Abraham Marín-Pérez

Publisher Resources

ISBN: 9787121404634