我创建了这个
echo "<p>".preg_replace("/\'[^\)]+\'/","",$line)."</p>";
从此行获取单引号“隐私设置”之间的字词
$_lang['privacy.settings'] = 'Privacy settings';
但我得到了这个输出
$_lang[
我无法理解。正则表达式是如此复杂。
答案 0 :(得分:1)
你的正则表达式中的+是贪婪的,所以它会尽可能地匹配字符串。您可以通过以下方式解决此问题:
preg_replace("/\'[^\)\']+\'/","",$line)
或
preg_replace("/\'[^\)]+?\'/","",$line)
?在第二个例子中告诉正则表达式+不应该贪婪。
答案 1 :(得分:0)
如果您尝试从该行中获取值,请尝试:
echo "<p>" . preg_replace("/^.*=.*\'(.+)\'.*$/", "$1", $line) . "</p>";