1

我正在尝试使用 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}')";

那一个打印出方括号和花括号。

我将不胜感激任何帮助!

4

1 回答 1

2

你的正则表达式没有做你认为它在做的事情。

由于\,您的字符类实际上是匹配的A-Za-z,但也][因为\转义了 the 的含义]并且[在类中没有。

试试这个:

$regex = "#(\\[A-Za-z]+)(Title)#";

同时删除e修饰符。我不知道你为什么一开始就有它,但这可能就是它崩溃的原因。

于 2012-04-06T21:09:52.593 回答