我会尽力以最好的方式解释我的问题……好吧。
我有一个这样的多行字符串:
Hello World
And again Hello <a:b:c>
And again ...
现在我想替换,但它取决于什么是第一个字母,第二个等等。我有一个正则表达式片段来获取一个包含 3 个参数的数组。
arr = ('a', 'b', 'c')
现在我有一个开关来分析第一个论点。
switch (arr[0]) {
case 'a':
// do this
[...]
}
如果第一个论点是 ai 想<a:b:c>
用某些东西代替。
现在的问题是:为了获得参数,我使用 preg_split。现在如何替换字符串的正确部分?我可以得到位置,PREG_SPLIT_OFFSET_CAPTURE
但它是一个多行字符串,并且(!)当我用某些东西替换时,其他匹配项的位置(可能有 n 个匹配项)也必须改变,对吧?
也许你有解决这个问题的方法?
我认为 preg_replace 可以工作,但我认为这是解决这个问题的错误函数,因为一个字母(例如第二个,b
)可以是一个动态的参数。也许我以错误的方式理解了函数 preg_replace ......但是......我真的不知道如何解决这个问题。也许你有一个文档,我可以在其中阅读一些东西来解决这个问题(请不要将我链接到 php.net - 我已经阅读过它)或者你有一个想法。