首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用preg_match替换ereg_match

用preg_match替换ereg_match
EN

Stack Overflow用户
提问于 2011-01-21 20:59:58
回答 3查看 936关注 0票数 0

尊敬的先生/m‘as,我怎样才能用preg_replace或str_replace替换已弃用的ereg_replace,同时仍然具有以下代码中的相同功能?

代码语言:javascript
运行
复制
return ereg_replace("^(.*)%%number%%(.*)$","\\1$i\\2",$number);

///this doesnt work

return preg_replace("^(.*)%%number%%(.*)$","\\1$i\\2",$number);

有没有更聪明的人有线索?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-21 21:17:07

试试这个:

代码语言:javascript
运行
复制
return ereg_replace("^(.*)%%number%%(.*)$","\\1$i\\2",$number);

变成了

代码语言:javascript
运行
复制
return preg_replace("/^(.*)%%number%%(.*)$/","\\1$i\\2",$number);

注意正则表达式周围的/。

票数 1
EN

Stack Overflow用户

发布于 2011-01-21 21:19:19

我将采用一种非常棒的手册方法。

PHP手册提供了从POSIX Regex迁移到PCRE的a section

PCRE函数要求模式包含在delimiters.

  • Unlike

  • 中,而PCRE扩展没有用于不区分大小写的专用函数。相反,这是通过使用/i pattern修饰符来支持的。还可以使用其他模式修饰符来更改匹配策略。

  • POSIX函数会找到最左侧的最长匹配,但会在第一个有效匹配时停止。如果字符串根本不匹配,则没有区别,但如果匹配,则可能会对结果匹配和匹配速度产生重大影响。为了说明这一区别,请考虑Jeffrey Friedl的“掌握正则表达式”中的以下示例。使用模式一(自)?(自给自足)?使用PCRE时,字符串on _ oneself将导致匹配自己,但使用POSIX时,结果将是完整的字符串on_oneself。这两个(子)字符串都与原始字符串匹配,但POSIX要求结果中最长的一个。

祝好运,

Alin

票数 1
EN

Stack Overflow用户

发布于 2011-01-21 21:16:08

PHP中的preg_函数使用的兼容Perl的正则表达式需要模式字符串中的分界字符,定义实际字符串模式的开始和结束位置,以及其他功能的属性,例如不区分大小写。

例如:

代码语言:javascript
运行
复制
$pattern = "/dog/i"; // Search pattern for "dog", case insensitive.
$replace = "cat";

$subject = "Dogs are cats.";

$result = preg_replace($pattern, $replace, $subject);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4759063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档