首页 > 解决方案 > Lua 模式匹配中“.-”的 RegEx 等价物是什么?

问题描述

我正在将一些 Lua 代码移植到 JS,但到目前为止我还没有使用 Lua。有 Lua 模式,我在这里"^([^aeiouàèéêíòóôúïü]*)(.-)$"找到了连字符的以下解释:

- 匹配前一个字符(或类)零次或多次,尽可能少。

我试图弄清楚正则表达式的等价物是什么。另外我不明白为什么首先需要这样做 - 还(.*)$不够吗?

标签: javascriptregexlualua-patterns

解决方案


在 Java 中,.-实际上等同于[\s\S]*?or (?s).*?,或者 - 为了安全起见 - (?s:.*?),因为.在 Lua 模式中匹配任何字符(包括换行字符)并且-是匹配 0 个或更多字符的惰性(非贪婪)量词,即*?在常规NFA 正则表达式。

请参阅Lua 模式

. all characters

进而

修饰符匹配原始类的`+´一个或多个字符。它总是会得到与模式匹配的最长序列。

修饰符`*´类似于`+´,但它也接受零次出现的类字符...

`*´,修饰符`-´也匹配零次或多次出现的原始类字符。但是,它不是匹配最长的序列,而是匹配最短的序列。


推荐阅读