javascript - 如何使我的正则表达式匹配集达到最小程度?

标签 javascript regex

我已经制作了一个 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.

如何最好地纠正我的正则表达式来解决这个问题?

最佳答案

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

replace(/\|(.*?)\|/g, "\\textsc{$1}");

每个人都知道 * 和 +,但我很惊讶他们的 sibling 如此不受欢迎 *?和+?它们做同样的事情,只不过它们尝试匹配尽可能少的(非贪婪的),而 * 和 + 总是尝试匹配尽可能多的(贪婪的)。

关于javascript - 如何使我的正则表达式匹配集达到最小程度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6400397/

相关文章:

java - 交换字符串中的两个字母

javascript - 使用 JQuery 在 HTML 中调用变量

javascript - Chrome 找不到 offsetTop

javascript - 从 webdriver.io 获取数据后动态构建 Mocha 测试

regex - Go 正则表达式中的负前瞻

Python:根据通用名称标识符对文件名列表进行分组

javascript - 在表单中使用 onsubmit 而不是 onchange 时无法获取图像

javascript - 消除隐藏延迟

sql - 我是否在数据库中错误地使用了正则表达式?

javascript 正则表达式或字符串方法仅匹配子域和域(减去顶级)