Javascript 如何使正则表达式匹配集达到最小程度?

Javascript 如何使正则表达式匹配集达到最小程度?,javascript,regex,Javascript,Regex,我制作了一个JavaScript正则表达式来更改LaTeX渲染器垂直条集的实例,但是当我在同一段落中有多个这样的实例时,它只会影响第一个和最后一个条,而我更希望它匹配每个条集。正则表达式是: replace(/\|(.*)\|/g, "\\textsc{$1}"); 例如,使用以下示例: Lorem | ipsum | dolor sit | amet |, 奉献精英 我的正则表达式生成: Lorem\textsc{ipsum | dolor sit | amet |, 康塞特图尔|阿迪皮西奇

我制作了一个JavaScript正则表达式来更改LaTeX渲染器垂直条集的实例,但是当我在同一段落中有多个这样的实例时,它只会影响第一个和最后一个条,而我更希望它匹配每个条集。正则表达式是:

replace(/\|(.*)\|/g, "\\textsc{$1}");
例如,使用以下示例:

Lorem | ipsum | dolor sit | amet |, 奉献精英

我的正则表达式生成:

Lorem\textsc{ipsum | dolor sit | amet |, 康塞特图尔|阿迪皮西奇}精英

但我更希望它能尽可能地将所有集合匹配到最小程度,就像这样

Lorem\textsc{ipsum}dolor-sit \textsc{amet},连续 \textsc{adipising}elit


如何最好地更正正则表达式以解决此问题?

另一种方法是在原始正则表达式中添加单个字符:

   replace(/\|([^\|]+)\|/g, "\\textsc{$1}");
replace(/\|(.*?)\|/g, "\\textsc{$1}");
每个人都知道*和+,但我很惊讶他们的兄弟姐妹如此不受欢迎 *? 和+?。他们做同样的事情,只是他们尝试匹配尽可能少的(非贪婪),而*和+总是尝试匹配尽可能多的(贪婪)