我想以这种格式解析一个字符串++ VAR ++。
我尝试过preg_match_all(“++。*?++”,$ input,$ matches);但失败了。 我错过了什么?
答案 0 :(得分:0)
你错过了逃脱+并且忘了添加php分隔符。
preg_match_all('~\+\+.*?\+\+~', $input, $matches);
答案 1 :(得分:0)
您的正则表达式缺失 regex delimiters 。此外,+
是一个特殊的正则表达式元字符(一个或多个量词),它必须被转义才能被视为文字字符。
如果您只有内的字母数字字符匹配加上符号,则可以使用
preg_match_all('~(?<!\+)\+\+(\w+)\+\+(?!\+)~', $txt, $matches);
请参阅IDEONE demo:
$re = '~(?<!\+)\+\+(\w+)\+\+(?!\+)~';
$str = "I have ++VAR++ and +++++++++++ and +++text+++++ and ++ANOTHER_VAR++.";
preg_match_all($re, $str, $matches);
print_r($matches);