在 LaTeX 中,表达式\o{a}{b}
意味着运算符 'o' 有两个参数 a 和 b。LaTeX 也接受\o{a}
,并且在这种情况下将第二个参数视为空字符串。
现在我尝试将正则表达式\\\\o\{([\s\S]*?)\}\{([\s\S]*?)\}
与字符串匹配\o{a}\o{a}{b}
。当它不是匹配时,它会将整个字符串误认为是匹配的。(对这个字符串的正确解释是子字符串\o{a}{b}
是唯一的匹配项。)关键是我需要知道如何告诉 PHP 识别如果在第一个 } 之后有除 { 之外的其他内容,那么它不是匹配项。
我该怎么做?
编辑:运算符的参数允许包含符号\
,{
和}
。但在这种情况下,整个字符串不匹配的原因是因为大括号中的大括号a}\o{a
不符合 LaTeX 规则(例如{
必须在 之前}
),因此a}\o{a
不能作为运算符的参数......
Edit2:另一方面,\o{{a}}{b}
应该是一个匹配,因为{a}
它是一个有效的参数。