我想的一个版本str_replace()
是只替换第一次出现$search
的$subject
。是否有一个简单的解决方案,还是我需要一个hacky解决方案?
可以用preg_replace完成:
function str_replace_first($from, $to, $content)
{
$from = '/'.preg_quote($from, '/').'/';
return preg_replace($from, $to, $content, 1);
}
echo str_replace_first('abc', '123', 'abcdef abcdef abcdef');
// outputs '123def abcdef abcdef'
不可思议的地方是可选的第四个参数[Limit]。从文档中:
[限制]-每个主题字符串中每个模式的最大可能替换量。默认为-1(无限制)。
问题内容: 我有一个字符串,其结构类似于:。每次来自外部源的字符串都可能有所不同。 我只想替换第一次出现的而不是其他的。可能吗? 问题答案: preg_replace的可选第四个参数是:
问题内容: 我正在尝试匹配模式: 以下仅匹配第一次出现的情况: 结果是: 但是,[使用pythex似乎可以正常工作](http://pythex.org/?regex=%3C–(%5B%5Cw%5Cs%5D%2B)–%3E(%5B%5Cs%5CS%5D*%3F)(%3F%3D%5Cn%3C–%7C%24)&test_string=%3C–%20Option%201%20–%3E%0ANice%20
问题内容: 我很难理解什么时候会更合适,反之亦然。尽管替换子字符串的顺序颠倒了,但使用这两个函数似乎都可能获得完全相同的结果。例如: 这个输出 除了语法之外,使用一种语法还有什么好处?在任何情况下都不足以达到预期的结果吗? 问题答案: 第一个区别: 之间不同的行为的一个有趣的例子,并在PHP手册的注释部分: 结果是:“ ZDDB” 但是,此返回:“ ZDDD”(因为根据我们的数组,B = D) 要
我的目标概述 为了实现这一点,我生成了以下代码 不幸的是,结果的dataframe,My.df2看起来与My.df完全相同,并且没有发生字符替换。但不会返回任何错误。 我以以下方式测试了str_replace_all()方法,它在一个向量上起作用。我想,在mutate(cross())函数中解释str_replace_all()的方式中,我遗漏了/不理解一些东西。 我已经想不出什么可能不起作用了。
问题内容: 这是我的桌子: 然后,出于某种目的,我运行sql更新表t1中的日期: 现在,查看更改: 我不知道为什么匹配的行数为1,并且很难理解t1的列的值是id = 1而不是3的值2。当它与第一行匹配时,更新停止了吗?我认为在这种情况下,它将在t1和t2之间进行完整的数据匹配。任何帮助表示赞赏! 更新 谢谢,这是我正在认真处理的情况: 对于t2中的值,将它们用’,’分隔,并通过每个id合并到表t1
我想用正则表达式解析一个字符串,字符串的例子是 罗得:他说:你不能通过 我想将作为一个组捕获,并且。然而,当我使用我的模式时,它返回 和 他说:你不应该使用正则表达式传递吗?