如何匹配不包含子字符串的字符串?

如何匹配不包含子字符串的字符串?

我需要一个正则表达式来匹配以 开头、以 结尾且不包含 的\regex_replace_all字符串。这个不起作用:ABCBC

\documentclass{article}
\begin{document}
\ExplSyntaxOn
\tl_set:Nn\foo{foo A xxxx B bar}
\regex_replace_all:nnN { A ((?!CBC).)+ B }{ replaced } \foo
\foo
\ExplSyntaxOff
\end{document}

我希望它能渲染foo replaced bar。但是,没有发生替换。据我所知,A ((?!CBC).)+ B这是一个正确的正则表达式。我在日志中看到以下内容:

LaTeX Warning: Unknown special group '(?! ...' in a regular expression.

答案1

\documentclass{article}
\begin{document}
\ExplSyntaxOn
\tl_set:Nn\foo{foo A xxxx B bar}
\regex_replace_all:nnN {A([^C]*(C[^B]|CB[^C])?)*B  }{ replaced } \foo
\foo
\ExplSyntaxOff
\end{document}

在此处输入图片描述

相关内容