我正在尝试匹配字符串中的多个方括号标记以从字符串中提取它们。
例如:
$string = 'Request: [CODE]sksdjdiwjwdwdkw[/CODE] Response: [CODE]sksdjdiwjwdwdkw[/CODE]';
preg_match_all('/\[CODE\](.*)\[\/CODE\]/',$string)
匹配第一个[CODE]
和最后一个[/CODE]
之间的所有内容。
有没有人知道表达式是如何构成的?
答案 0 :(得分:3)
尝试让你的比赛不贪婪:
preg_match_all('/\[CODE\](.*?)\[\/CODE\]/',$string)
^^^
答案 1 :(得分:1)
不要使用.*
(比非贪婪更快)
preg_match_all('/\[CODE\]([^\[]+)\[\/CODE\]/',$string);