preg_match对于存在的每个包含的文本,重复一个函数


preg_match for every enclosed text that exists, repeat a function

在一个字符串中,我有这样的东西:

[select|blog]
    Some text some text some text
[/select]
more text more text more text
[select|information]
    Some text some text some text
[/select]

现在使用preg_match我希望函数:

  • 获取 [选择] 标记之间的文本
  • 改变它
  • 将其插回字符串中
  • 删除选择标记

所以最终它会变成这样:

Changed text1 Changed text1 Changed text1
more text more text more text
Changed text2 Changed text2 Changed text2

希望你们能帮助我。谢谢!:)

这个正则表达式会让你入门

'[.*?](.*?)'[.*?]

将允许点 . 的选项放在匹配新行上

括号内的案文位于第 1 组中

我来自 .NET 世界,所以我会用一个函数来解决这个问题,我可以在每场比赛后执行该函数。此函数的输入是匹配项。如果您需要访问第 1 组并重写或放置新内容,您可以在此处访问第 1 组。

我刚刚在评论中读到,php 中的等效项是preg_replace_callback()