javascript - Lua 模式匹配中“.-”的 RegEx 等价物是什么?
问题描述
我正在将一些 Lua 代码移植到 JS,但到目前为止我还没有使用 Lua。有 Lua 模式,我在这里"^([^aeiouàèéêíòóôúïü]*)(.-)$"
找到了连字符的以下解释:
- 匹配前一个字符(或类)零次或多次,尽可能少。
我试图弄清楚正则表达式的等价物是什么。另外我不明白为什么首先需要这样做 - 还(.*)$
不够吗?
解决方案
在 Java 中,.-
实际上等同于[\s\S]*?
or (?s).*?
,或者 - 为了安全起见 - (?s:.*?)
,因为.
在 Lua 模式中匹配任何字符(包括换行字符)并且-
是匹配 0 个或更多字符的惰性(非贪婪)量词,即*?
在常规NFA 正则表达式。
请参阅Lua 模式:
. all characters
进而
修饰符匹配原始类的
`+´
一个或多个字符。它总是会得到与模式匹配的最长序列。
修饰符`*´
类似于`+´
,但它也接受零次出现的类字符...
像`*´
,修饰符`-´
也匹配零次或多次出现的原始类字符。但是,它不是匹配最长的序列,而是匹配最短的序列。
推荐阅读
- python - 为什么在 django-admin 后端中没有使用 django-markdown 显示 markdown 小部件?
- python - 将完全密集的数组转换为稀疏矩阵是否会丢失任何信息?
- angular - 如何在 Angular 8 的另一个组件中显示表单提交?
- reactjs - 棱镜预览未在盖茨比中显示更新的内容
- gcc - pkg-config:需要问题:ld 找不到文件
- c# - 如何在引导模式中绑定 ViewComponent
- python - 如何使注册页面只接受一个电子邮件地址
- xml - 与 XPath 一起使用时,如何在 xmlstarlet 更新命令中正确添加 xml 命名空间
- here-api - HERE Map Tile Labels 仅在某些缩放级别使用指定语言?
- c# - 如何在 C# 中限制下载 HTML 文档字符串的大小?