我需要用方括号中的任何文本的每个实例替换其他东西,每个方括号块被分开处理。例如,先从:正则表达式匹配语法
[quote author=joe link=topic=765.msg4476#msg4476 date=1330380346] This is the quoted text [/quote] This is the new post
正在变成:
** This is the quoted text ** This is the new post
我尝试使用以下内容:
preg_replace('/\[.*\]/', '**', $msgtext);
我得到的是:
** This is the new post
即使在较大的文本中有一堆单独的方括号块,它似乎与整个字符串中的第一个'['字符到最后一个']'字符相匹配。如何更改我的正则表达式以单独替换方括号之间的每个块?很明显,我的。*在正则表达式中匹配包括右括号在内的所有内容,直到最后一个,但我希望它停在它遇到的第一个右括号,然后在整个字符串中重复该逻辑。
谢谢,伙计们,上述所有工作都像一个魅力。我使用了除版本以外的任何字符,但非贪婪的方式也能起作用,并得到相同的结果。解决了。 – 2012-03-31 20:52:07
@BenCahan如果你认为它回答了你的问题,你应该接受答案(通过点击下面的选票标记)。 – cmbuckley 2012-03-31 21:04:07