POSIX 替换
ereg_replace() 和 eregi_replace() 这两种方法用于在文本中进行替换,具有 POSIX 正则表达式的特性。
ereg_replace()
您可以使用 ereg_replace() 方法以 POSIX 正则表达式语法进行大小写敏感的替换。如下示例描述了如何替换带有超链接的字符串内的电子邮件地址:
清单 3. ereg_replace() 方法
<?php
$origstr = "My e-mail address is: first.last@example.com";
// Syntax is: ereg_replace( regex, replacestr, string )
$newstr = \
ereg_replace("([.[:alpha:][:digit:]]+@[.[:alpha:][:digit:]]+)",
"<a href=\"mailto:\\1\">\\1</a>", $origstr);
print("$newstr\n");
?>
|
这是一条用于匹配电子邮件地址的正则表达式的不完整版本,但它展示了与 str_replace() 等其他普通替换函数相比,ereg_replace() 的强大之处。在使用正则表达式时,您可定义搜索的规则,而不是搜索文字字符。
eregi_replace()
除忽略大小写之外,eregi_replace() 函数与 ereg_replace() 是完全相同的:
清单 4. eregi_replace() 函数
<?php
$origstr = "1 BANANA, 2 banana, 3 Banana";
// Syntax is: eregi_replace( regex, replacestr, string )
$newstr = eregi_replace("banana", "pear", $origstr);
print("New string is: '$newstr'\n");
?>
|
本例将 banana 替换为 pear,替换操作忽略了大小写。