问题标签 [preg-replace-callback]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
593 浏览

php - php preg_replace 词链接,但词不能已经作为锚的一部分

我有一些 HTML 内容:

而且我想将所有“nulla”单词替换为链接,但前提是“nulla”不是另一个链接 url 或其他 HTML 参数(标题、alt)的一部分。在上面的示例脚本中,应该只替换第一个和最后一个“nulla”单词,其他的保持原样。我坚持使用这个正则表达式,但它不能按我想要的方式工作:

0 投票
1 回答
527 浏览

php - PHP preg_replace_callback 正确转义以处理哈希符号('#')

我正在使用 Twitter 提要进行一些工作,并希望将任何主题标签转换为 clicable URL。

井号标签是一个井号 ('#'),后面紧跟一个充当搜索标签的词 - 并且不包含空格。

一个例子是......

这里有两个标签,#Shoreditch 和#AutoClubRev。

这些应分别成为以下链接...

https://twitter.com/#!/search?q=%23Shoreditchhttps://twitter.com/#!/search?q=%23AutoClubRev

我假设我应该在这里使用 preg_replace_callback 而不仅仅是 vanilla preg_replace,因为我正在尝试获取反向引用 ($1) 并更改它而不仅仅是显示它。但我当然可能是错的。我不关心使用哪个功能——只要它能完成工作并且相对有效。

谢谢,皮特

0 投票
3 回答
1185 浏览

php - PHP Preg 替换替换数组

好的,所以我正在尝试做这样的事情:

preg_replace("/\{([a-zA-Z0-9_]+)\}/", $templateVariables[$1], $templateString);

现在我知道这是不可能的,但是我想知道是否有办法做到这一点,因为我尝试使用 create_function 但是,$templateVariables 是它所在函数的局部变量,所以我无法从 create_function 中访问 $templateVariables,所以我有点卡在这里。我宁愿不必找到匹配项找出替换它们的内容,然后再次找到它们进行替换,这看起来效率低下。那么无论如何我可以从匿名函数中获取局部变量,或者有没有人有任何好的建议。

谢谢。

0 投票
1 回答
101 浏览

php - 使用 preg_replace_callback 识别和操作 Latex 代码

我有以下形式的乳胶+ html代码:

首先,我想获取数组代码 [] 中的乳胶代码,以便能够将它们发送到服务器进行渲染,这样

其次,我想修改这个文本,使它看起来像:

即,第 i 个乳胶代码片段被第 i 个渲染图像的链接替换。

我一直在尝试使用 preg_replace_callback 和 preg_match_all 来做到这一点,但是对于 PHP 来说是新手还不能让它工作。请指教。

0 投票
1 回答
3301 浏览

php - preg_replace_callback() 中的第二个参数

我对preg_replace_callback()PHP 中的函数有疑问。我想调用一个需要两个参数的函数。

在互联网上,我找到了这段代码:

但是在函数 foo 中,我不能使用通常与 preg_replace_callback 一起使用的匹配数组

我希望你能帮帮我!

0 投票
2 回答
1319 浏览

php - 使用 preg_replace_callback 函数替换结束 div 标签

我正在尝试开发一个 PHP 脚本,它将 HTML 字符串中的所有 div 替换为段落,除了那些具有属性的段落(例如<div id="1">)。我的脚本目前做的第一件事是使用简单的 str_replace() 替换所有出现的<div>with <p>,这会留下任何带有属性的 div 标记和结束 div 标记 ( </div>)。但是,用</div>标签替换标签</p>有点问题。

到目前为止,我已经开发了一个 preg_replace_callback 函数,该函数旨在将一些</div>标签转换为</p>标签以匹配开始标签,但当它们以属性结束时<p>忽略其他标签。下面是我正在使用的脚本;</div><div>

该脚本基本上将所有剩余的<div></div>标签放入一个数组中,然后循环遍历它。然后,计数器变量在遇到<div>标签时递增,或者在遇到</div>数组中的 a 时递减。当计数器小于 0 时,返回一个</p>标签,否则</div>返回一个。脚本的输出应该是;

相反,我得到的输出是;

我花了几个小时对脚本进行了我能想到的尽可能多的编辑,而且我一直得到相同的输出。谁能向我解释我哪里出错或提供替代解决方案?

任何帮助,将不胜感激。

0 投票
2 回答
111 浏览

php - 为什么这个 preg_replace_callback 不触发?

当我在下面的第二个内容片段上运行此脚本时,它通过了(我得到“内部回调”回声)。

但是,当我在第一个内容片段上运行它时,即使我得到了第一个回声,我也从来没有在 p_callback() 中得到回声。

我猜内容中有些东西会触发 preg_replace_callback。你会建议是什么导致了这个问题?

第一个内容片段失败:

第二个内容片段通过:

0 投票
1 回答
354 浏览

php - 在 preg_replace (preg_replace_callback?) 的第二个或第三个任期内应用函数

我在下面有一个简单的(BBCode)PHP 代码,用于将代码插入评论/帖子。

我想要做的是在这些位置插入函数:

根据我在 SO 上阅读的内容,我可能需要使用preg_replace_callback()或 e-modifier,但我无法弄清楚如何去做;我对正则表达式的了解不是很好。将不胜感激一些帮助!

0 投票
1 回答
57 浏览

php - 以不同方式处理 preg_replace_callback 中的部分字符串

我得到了一个字符串,我在其中替换了所有出现的[CODE]...[/CODE]. 我preg_replace_callback可以调用一个处理这些标签内容的函数吗?但是我怎样才能操纵这些事件周围的所有字符串呢?

例子:

现在,在这种情况下,preg_replace_callback我操纵 , 的内容。但我想要这个字符串中的所有其他文本,所以做一些不同的事情。我怎么能以最好的方式做到这一点?[CODE]some codeHello, I am a string within it

谢谢你的帮助!

弗洛

0 投票
1 回答
1424 浏览

php - PHP PREG_REPLACE REGEX 提及用户名

用户模型.php

post_model.php

post_helper.php

首先,英语不是我的母语。所以,如果我的语法不好,请原谅我。

对于我学校的期末项目,我只想创建类似 Facebook 的网站(社交网络)。我的问题是,我想根据用户名(用户数据库)创建提及功能。如果在 Facebook 上键入@符号后,Facebook 系统开始查询最可能的朋友/页面,并显示很酷的 ajax 列表。但我不想那样,在我的系统中没有 ajax 列表显示。

如果用户使用@bias 或@tegaralaga 或@admin 等字符串发布状态更新“@tegaralaga 你在哪里?” 例如。我对数据库的系统检查是否有任何用户名为 @tegaralaga 的用户,如果是,则基于user_model.php函数get_fullname_by_username(); 它将返回user_first_nameuser_last_name数据。但如果没有,它将返回 FALSE。在我的用户表上,有一个用户名为 tegaralaga,user_first_name 是 Bias,user_last_name 是 Tegaralaga。

移动到post_helper.php,如果 $name==FALSE 它将给出当前字符串 @tegaralaga。但是如果用户名存在,它会返回

如果存在,则字符串变为

如果没有,字符串仍然

所以我的问题是:
1. 上面的代码是否可以使用 preg_replace_callback?(查看 post_helper.php)
2. 如果可能的话,如果我们可以提及超过 1 个用户名,那么完美的正则表达式是什么,以及电子邮件地址的例外(因为电子邮件地址也包含 @ 符号)