繁体   English   中英

preg_replace限制问题,处理数组值

preg_replace limit issue, handling array values

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我一直在使用Sphider搜索引擎访问内部网站,我们需要能够快速搜索导出的.htm(l)文件中的详细联系信息。

$fulltxt = ereg_replace("[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*(\.[A-Za-z]{2,3})", "<a href=\"mailto:\\0\">\\0</a>", $fulltxt);

我正在使用方便的mailto:链接替换电子邮件地址,以便用户可以直接从搜索结果中打开Outlook。

然而,

while (preg_match("/[^\>](".$change.")[^\<]/i", " ".$fulltxt." ", $regs)) {
    $fulltxt = preg_replace("/".$regs[1]."/i", "<b>".$regs[1]."</b>", $fulltxt);
    }

它将搜索结果中的所有匹配项替换为粗体标签,该粗体标签恢复为Outlook的“至...”字段中包含的标签。 在HTML中看起来像这样(感谢Yuriy ):

<a href="mailto:<b>name</b>.surname@domain"><b>name</b>.surname@domain</a>

我尝试将一个值添加到'limit'参数:

while (preg_match("/[^\>](".$change.")[^\<]/i", " ".$fulltxt." ", $regs)) {
    $fulltxt = preg_replace("/".$regs[1]."/i", "<b>".$regs[1]."</b>", $fulltxt, 1);
    }

大概这应该是我的问题的解决方案,只需替换第一个匹配项(即名称,因为该模式是name-phone num-email,并且我们始终按名称搜索 ),相反,这只会使它难以置信地慢到我所知道的程度来自服务器的超时消息。 我一直在尝试各种解决方案,但运气不好。

有任何想法吗? 难道我做错了什么?

谢谢。

(*最初经过大量编辑)。

1 个回复

我了解您的意思是发生了这种事吗?

<a href="mailto:<b>email@domain</b>"><b>email@domain</b></a>

为什么不先将标签放入搜索结果中,然后才将“ mailto:”锚应用于电子邮件? 在第二步的模式中,添加的很容易被过滤掉。

1 preg_replace问题

我试图完成以下任务: 搜索小写字母后跟大写字母。 将其替换为小写字母,后跟'。 ',后跟大写字母。 例: 应成为: ...

2 preg_replace问题

我想把一个文本而不是字符串VERSION = 20101203,我的问题只是preg_replace的第一个字段,我是常规expresions的新手。 我不知道如何告诉preg_replace看到我需要为其他文本更改字符串VERSION=20101203 。 所以字符串的格式为: VER ...

3 preg_replace问题

您好,我正在尝试执行以下操作: 说我有一个这样的输入字符串 如何使用PHP将其转换为以下格式 我在玩preg_replace,但找不到有效的解决方案。 总结一下:嵌套的{应该变成[。 和| 在第一层应该变成〜。 有任何想法吗? 问候 ...

4 preg_replace与数组

我的数据库有一个包含1000个术语及其定义的表。 我想打印这些定义,并将span标签添加到已经是术语的每个单词中。 我用它来创建两个数组(模式和替换): } 这呼应定义: 有了这段代码,我在关闭跨度标签时出现了字符/的错误。 所以我想要一个解决方案,能够使用/ ...

5 带数组值的preg_replace()特定文本

不好意思的标题和解释表示歉意。 说我有一个像这样的数组: 和一些这样的HTML: 使用PHP的preg_replace函数(或其他我不介意的函数),是否可以将{}字符串替换为数组中的值? ...

2015-02-08 16:02:36 2 158   php/ regex
6 preg_replace和数组值

我需要将大括号('{}')中的每个数字转换为超链接。 关键是,字符串可以包含多个模式。 输出数组是这样的 这是我当前的代码。 但是输出就像 仅获取'1'($ matches [1] [0])。 我该如何解决? ...

7 preg_replace问题

我想匹配和提取变量: {{variable:int}} 变量将是任何az :是一个分隔符 int将是0-9的整数 Curretly我有: preg_replace('!\\{\\{(\\S+)\\}\\}!', "$1", $string)只做了一半的工作,我仍 ...

8 preg_replace有问题吗?

在设法使用preg_match_all之后,我想要将匹配的文本替换为matchText,但是似乎不起作用。 看一下我的代码,我做错了什么? ...

9 preg_replace问题

我有一个字符串The Incredible Hulk(2008)并使用了模式 删除(2008)。 PHP代码如下所示: 结果是: 我究竟做错了什么? ...

10 preg_replace问题

这是一个简单的:) 我有这行很好用: 什么是删除html实体版本的正确正则表达式? 这是实体: ...

2010-08-11 20:34:33 2 53   php
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM