我想在SCRIPT中使用正则表达式替换。该代码在texstudio中有效。

%SCRIPT
text = app.clipboard
text = text.replace(/{([^}])}{([^}])}{not}/g, "\1\2{not}")
cursor.insertText(text)


我希望{match1} {matchb} {not} {anotb}的输出为match1matchb {not} {anotb},但实际输出为{not} {anotb}。此代码在texstudio中有效。万分感谢!

最佳答案

将您的正则表达式更改为不包含括号{},并改用replace的回调参数:



const str = "{match1}{matchb}{not}{anotb}";

const res = str.replace(/{(.*?)}{(.*?)}{not}/g, (_, m1, m2) => `${m1}${m2}{not}`);

console.log(res);

关于javascript - 有什么办法可以在texstudio中使用此脚本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57779911/

10-16 00:09