我正在尝试使用preg_replace来更改TeX文件的格式。
这是我的代码:
$regex = "#([\][A-Za-z]+)(Title)#e";
$replace = "('hl\{$1Title}')";
$newphrase = preg_replace($regex,$replace,$newphrase);
我的问题是“{”之前的“\”在我的输出中打印出来。
像这样:\ hl \ {FaithTitle}而不是:\ hl {FaithTitle}
我尝试了很多不同的东西,这里有几个:
$replace = "('hl{$1Title}')";
那个崩溃整个页面。
$replace = "('hl[{]$1Title}')";
那个打印出正方形和花括号。
我很感激任何帮助!
答案 0 :(得分:2)
你的正则表达式没有做你认为它正在做的事情。
由于\
,您的角色类实际上与A-Za-z
匹配,但也与][
匹配,因为\
忽略了]
和{{}的含义1}}在课堂上没有。
试试这个:
[
同时删除$regex = "#(\\[A-Za-z]+)(Title)#";
修饰符。我不知道你为什么要把它放在那里,但这可能就是它崩溃的原因。