background image
表示的美国各州的缩写。字符串最为棘手:
PHP 应用程序必须对嵌入 SQL 查询、
JavaScript 代码或者其他能够改变应用程序行为或有碍安全性的恶意操作程序保持警惕。
但是程序如何告知输入是数字还是遵循某个约定(例如邮政编码)?基本上,执行匹配需要
使用一个小型解析器
—— 创建一个状态机、读取输入、处理标记、监视状态并生成结果。
但是,即使是一个简单的解析器,也难于进行创建和维护。
幸运的是,由于模式匹配分析是最常见的计算需求,因此,随着时间的推移,一种特殊的简
写方式(引擎)应运而生(大约从
UNIX® 出现之后),它可以减轻事务的工作量。正则
表达式
(regex) 使用简明、易读的符号描述模式。给定一个正则表达式和数据,正则表达
式引擎将得到数据是否匹配模式及匹配内容(如果找到匹配)等结果。
下面是应用从
UNIX 命令行实用程序 grep 中提取的正则表达式的简单示例,该实用程序
将在一个或多个
UNIX 文本文件的内容中搜索指定模式。命令
grep -i -E '^Bat'
将搜索
序列
beginning-of-line
(用脱字符号
[^] 来表示),后面紧接着大写或小写字母
b、
a
t
(使用
-i
选项将在模式匹配时忽略大小写,举例来说,也就是
B
b
是等效的)。
因此,给出文件
heroes.txt:
清单
1. heroes.txt
Catwoman
Batman
The Tick
Black Cat
Batgirl
Danger Girl
Wonder Woman
Luke Cage