Javascript 如何使正则表达式匹配集达到最小程度?
我制作了一个JavaScript正则表达式来更改LaTeX渲染器垂直条集的实例,但是当我在同一段落中有多个这样的实例时,它只会影响第一个和最后一个条,而我更希望它匹配每个条集。正则表达式是:Javascript 如何使正则表达式匹配集达到最小程度?,javascript,regex,Javascript,Regex,我制作了一个JavaScript正则表达式来更改LaTeX渲染器垂直条集的实例,但是当我在同一段落中有多个这样的实例时,它只会影响第一个和最后一个条,而我更希望它匹配每个条集。正则表达式是: replace(/\|(.*)\|/g, "\\textsc{$1}"); 例如,使用以下示例: Lorem | ipsum | dolor sit | amet |, 奉献精英 我的正则表达式生成: Lorem\textsc{ipsum | dolor sit | amet |, 康塞特图尔|阿迪皮西奇
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}");
每个人都知道*和+,但我很惊讶他们的兄弟姐妹如此不受欢迎
*? 和+?。他们做同样的事情,只是他们尝试匹配尽可能少的(非贪婪),而*和+总是尝试匹配尽可能多的(贪婪)