POSIX 匹配
有两个使用 POSIX 正则表达式搜索字符串的函数,即 ereg() 和 eregi()。
ereg() 方法为特定正则表达式搜索字符串。如果未找到任何匹配项,则返回 0,因此您可以给出如下测试:
|
正则表达式 [-[:digit:]]{12} 查找 12 个为数字或连字符的字符。就处理电话号码而言,这有些粗略,您也可将其改写成这样的形式:^[0-9]{3}-[0-9]{3}-[0-9]{4}$。(在 regex 中,[0-9] 和 [:digit:] 实际上是完全相同的,您可能更愿意使用 [0-9] 的形式,因为它更短些。)这种作为替代方案的表达式显然更为精确。它会查找行的开头(^),后接一组 3 个数字([0-9]{3})、一个连字符(-)、另外一组 3 个数字、另外一个连字符、一组 4 个数字,然后是行的结尾($)。当您手工编写表达式时,这会使您了解到正则表达式要处理的问题的复杂程度如何,从而有助于预测出使用表达式搜索或替换的数据类型。
eregi() 方法类似于 ereg(),不同之处在于它对大小写不敏感。它将返回一个包含所找到的匹配项长度的整数,但您很可能会将其用于条件语句中,如下所示:
|
执行此示例时,将输出 Found match!,这是因为在忽略大小写的搜索中找到了 hello。如果您使用的是 ereg,搜索将失败。