很抱歉问一个这么简单的问题,但这是我的问题。我实际上正在修改PlancakeEmailParser以满足我的需求。
我做了一个简单的正则表达式:
/([^:]+) (<+.*>)$/
应符合:
John DOE <johndoe@fakemail.com>
我在http://www.gethifi.com/tools/regex中测试了它完美无缺
但在我的代码中,它返回false!
以下是有问题的代码:
preg_match('/([^:]+): ?(.*)$/', $line, $matches);
$newHeader = strtolower($matches[1]);
$string = $matches[2];
$reg = "/([^:]+) (<+.*>)$/";
echo 'VALUE: '.$string."\n";
echo 'PREG_MATCH: '.preg_match($reg, $string)."\n\n";
if (preg_match('/([^:]+) (<+.*>)$/', $matches[2])) {
echo('match'."\n\n\n\n");
} else {
$value = $matches[2];
}
以下是回音反馈:
VALUE: John DOE <johndoe@fakemail.com>
PREG_MATCH: 0
你们中谁都明白这是什么问题?
非常感谢!
修改
问题是我对所有内容都做了很多,所以&lt;&gt;转换的地方。
解决方案是重写正则表达式:
/([^:]+) (<+.*>)$/
到这个
/([^:]+) (<+.*>)$/
非常感谢Peter Alfvin试图帮助:)。
也许有一天它可以帮助某人
答案 0 :(得分:0)
已解决问题是我对所有内容进行了 htmlentities ,因此&lt;&gt;在哪里转换。解决方案是从这里重写正则表达式:
/([^:]+) (<+.*>)$/ to this /([^:]+) (<+.*>)$/
或从所有内容中移除htmlentities并仅在需要时使用它,我终于做到了!
也许有一天它会帮助某人......