我已经创建了一个JavaScript正则表达式来更改LaTeX渲染器的垂直条组的实例,但是当我在同一段落中有多个这样的实例时,它只影响第一个和最后一个条形,当我想喜欢它匹配每组酒吧。正则表达式是:
replace(/\|(.*)\|/g, "\\textsc{$1}");
例如,使用以下示例:
Lorem | ipsum | dolor sit | amet |, consectetur | adipiscing | ELIT。
我的正则表达式产生:
Lorem \ textsc {ipsum | dolor sit | amet |, consectetur | adipiscing} elit。
但我希望它尽可能地匹配所有集合,就像这样;
Lorem \ textsc {ipsum} dolor sit \ textsc {amet},consectetur \ textsc {adipiscing} elit。
我如何才能最好地纠正我的正则表达式来解决这个问题?
答案 0 :(得分:5)
另一种方法是在原始正则表达式中添加单个字符:
replace(/\|(.*?)\|/g, "\\textsc{$1}");
每个人都知道*和+,但我很惊讶他们的兄弟姐妹不受欢迎 *?和??他们做同样的事情,除了他们试图尽可能少地匹配(非贪婪),而*和+总是试图尽可能多地匹配(贪婪)。
答案 1 :(得分:3)
replace(/\|([^\|]+)\|/g, "\\textsc{$1}");