在带有分隔符的文本中,我需要为用 LaTeX 编写的文档创建多个段落。此代码的目的是将引号内的任何内容替换为
\textquote{the text}
我们假设以下文本:
$str="Irán pueblos numerosos diciendo: «Vamos a subir al monte del Señor, al templo del Dios de Jacob».|Él nos enseñará sus caminos y caminaremos por sus sendas.|Viene el Mesías, el Cristo; cuando venga, nos hará saber todas las cosas.";
我需要创建以下内容:
\fourargs
{Irán pueblos numerosos diciendo: \textquote{Vamos a subir al monte del Señor, al templo del Dios de Jacob}.}
{%
Él nos enseñará sus caminos y caminaremos por sus sendas.%
}{%
Viene el Mesías, el Cristo; cuando venga, nos hará saber todas las cosas.%
}{%
Él nos enseñará sus caminos y caminaremos por sus sendas.%
}
我可以使用以下代码实现这一点,没有任何问题:
$str="Irán pueblos numerosos diciendo: «Vamos a subir al monte del Señor, al templo del Dios de Jacob».|Él nos enseñará sus caminos y caminaremos por sus sendas.|Viene el Mesías, el Cristo; cuando venga, nos hará saber todas las cosas.";
$html="";
$break=PHP_EOL."\t";
$quotes=["/'(.*?)'/",'/"(.*?)"/',"/«(.*?)»/","/“(.*?)”/"];
$textquote="\\textquote{\$1}";
$fourArgs="
\\fourargs
{%s}
{%%
%s%%
}{%%
%s%%
}{%%
%s%%
}";
$tmp=explode('|',preg_replace($quotes,$textquote,$str));
$html.=sprintf($fourArgs,
$tmp[0],
$tmp[1],
$tmp[2],
$tmp[1]
);
echo $html;
在进行
explode
时,当开盘价和收盘价被放置在不同的组中时,我的问题就出现了。在这种情况下,用 textquote{...}
进行替换将无法按预期工作。
假设有以下代码:
$str
内容如下:
$str="Irán pueblos numerosos diciendo: «Vamos a subir al monte del Señor, al templo del Dios de Jacob.|Él nos enseñará sus caminos y caminaremos por sus sendas».|Viene el Mesías, el Cristo; cuando venga, nos hará saber todas las cosas.";
最终结果如下:
\fourargs
{Irán pueblos numerosos diciendo: \textquote{Vamos a subir al monte del Señor, al templo del Dios de Jacob.}
{%
Él nos enseñará sus caminos y caminaremos por sus sendas}.%
}{%
Viene el Mesías, el Cristo; cuando venga, nos hará saber todas las cosas.%
}{%
Él nos enseñará sus caminos y caminaremos por sus sendas}.%
}
但是预期的结果是:
\fourargs
{Irán pueblos numerosos diciendo: \textquote{Vamos a subir al monte del Señor, al templo del Dios de Jacob}.}
{%
\textquote{Él nos enseñará sus caminos y caminaremos por sus sendas}.%
}{%
Viene el Mesías, el Cristo; cuando venga, nos hará saber todas las cosas.%
}{%
\textquote{Él nos enseñará sus caminos y caminaremos por sus sendas}.%
}
怎样才能在所有情况下都达到预期的结果?
根据您提供的示例,我有一个简单的解决方案。您可以在匹配文本中将
.|
替换为 }.|\\textquote{
,以插入额外的 \textquote
块。我假设这里 |
符号前面有 .
。
function textquotereplace(array $matches){
$str = str_replace('.|', '}.|\\textquote{', $matches[1]);
return "\\textquote{{$str}}";
}
$tmp=explode('|',preg_replace_callback($quotes,'textquotereplace',$str));