我希望在texs math-mode之外删除花括号。例如:
Lorem Ipsum $\mathbb{R}$ dolore. {Author} $\{1,\dotsc,n}$
应该成为:
Lorem Ipsum $\mathbb{R}$ dolore. Author $\{1,\dotsc,n}$
由于你无法真正否定正则表达式,我正在研究前瞻和后瞻。从技术上讲,这对我不起作用,{作者}也是两美元符号之间。一些正则表达专业人士对我有一些建议吗?
当问题不是太复杂时,我只想使用preg_replace。
答案 0 :(得分:1)
您可以使用这个基于前瞻性的正则表达式:
$re = '/\$\\\w*{[^}]+}(*SKIP)(*F)|{[^}]*}/';
$str = "Lorem Ipsum \$\mathbb{R}\$ dolore. {Author} \${1,\dotsc,n}\$";
$result = preg_replace($re, '', $str);
//=> Lorem Ipsum $\mathbb{R}$ dolore. Author $\{1,\dotsc,n}$
这里我们使用PCRE动词(*SKIP)(*F)
来跳过数学模式块,并在其余文本中替换{
和}
: