lua - 如何在 Lua 中创建仅在没有数字(普通或罗马数字)时匹配的模式?
问题描述
我想制作一个仅在字符串不包含阿拉伯数字或罗马数字时才匹配的模式(请注意,罗马数字只能达到X
(10))
例子:
"Rock" <-- matches
"Rock IV" <-- doesn't match
"Rock 4" <-- doesn't match
"Rock Paper" <-- matches
"Rock Paper Scissors" <-- matches
"Rock Paper VIII" <-- doesn't match
"Rock Paper 8" <-- doesn't match
我当前的代码只允许使用 1 个单词和一个数字。我的目标是使它只有在出现数字时才不匹配。代码:
"^([^%s]+)$"
正如标题所说,我正在使用 Lua。我还可以注意到,该代码将用于其中一个同人维基,因此语法应与Scribunto语法匹配。
解决方案
我想不出任何一种模式可以一次性匹配您需要的任何可能的单词。
".*%s?[^IVXLCDM0-9]+$"
这匹配任何不以空格和数字结尾的字符串。
对于像“RockM”这样带有罗马数字的单词,这将失败。
通常更容易匹配不匹配的东西。
如果您只想检查它可能更容易搜索字符串[0-9IVXLCDM]
推荐阅读
- quasar-framework - 当在 q-input 上使用 Vee-validation ValidationProvider 时,Quasar QForm 未提交
- flutter - Flutter:堆栈中的 ontap
- webpack - wow.js 和 Gatsby 的 WebpackError
- python - 迭代 csv.reader 对象并在不使用 pandas/dataframes 的情况下处理空白数据
- vba - VBA禁用Outlook插件?
- ios - 将预览视频上传到应用商店连接显示此错误
- docker - Jenkins 多代理在幕后构建切换目录,防止 AWS CodeDeploy 插件压缩构建文件
- azure - 在datafactory中处理excel表
- asp.net-mvc - Web Garden 的行为因应用程序池标识上的用户设置而异
- python - Scapy Python 3 错误:警告找不到路由(没有默认路由?)