【发布时间】:2017-03-31 11:43:50
【问题描述】:
我有一个 PHP 应用程序,我必须用它们各自的链接替换一大堆字符串。基本上我得到了一个可能的替换列表,看起来像这样:
"Table 1" => "<a href='SOME_LINK'>Table 1</a>"
"Table 2" => "<a href='SOME_LINK'>Table 2</a>"
...
"Table 10" => "<a href='SOME_LINK'>Table 10</a>"
"Table 11" => "<a href='SOME_LINK'>Table 11</a>"
我遍历每一对,并调用str_replace,其中每一对值。问题是,即使在第一遍时,我也抓住了Table 10 字符串和Table 1 字符串,并且我替换了这两个字符串,这是错误的。所以我最终得到的结果类似于<a href='SOME_LINK'>Table 1</a>0。 Table 10 根本不应该被替换(除非以后有另一对真正照顾 Table 10)。
有什么解决办法吗?我虽然想在字符串的搜索部分之后添加一个空格,但是文本中可能会有像Table 1, 这样的东西,然后根本不匹配。我也考虑过使用正则表达式来替换,但不确定是否有可以解决上述问题的语法。
编辑: 为了提高阅读理解,这里是这个问题的预期输入和输出。 条件:
"Table 1" => "<a href='SOME_LINK'>Table 1</a>"
"Table 10" => "<a href='SOME_LINK'>Table 10</a>"
输入:
We have some text here.
It has words like Table 1, Table 2 and also Table 10.
Those need to be replaced.
输出:
We have some text here.
It has words like <a href='SOME_LINK'>Table 1</a>, Table 2 and also <a href='SOME_LINK'>Table 10</a>.
Those need to be replaced.
【问题讨论】:
-
请做一件事,用您的输入和预期结果更新您的帖子
-
@WiktorStribiżew 非常好的主意。我正在考虑对项目进行排序,但
|添加是我缺少的部分。 -
如果那篇文章回答了你的问题,让我们把它当作一个骗子来关闭吧,好吗?
-
很高兴,但请让我先试一试,看看我能不能让它工作。完成后我会立即报告:)
标签: php regex str-replace