Lua模式匹配逗号周围的内容
2014-6-2 1:28:15
收藏:0
阅读:173
评论:1
我有几个小的标记,如'א,א' 'א,ב'。如果我们以逗号为中心点,则逗号之前最多需要2个字符,并且可以在逗号之后的下一个空格处停止。
我有(.-,.-)%s
,但它没有做我所需要的。有什么想法吗?
另外,正如您所看到的,它们不是拉丁字母,因此使用%l
无法正常工作。
原文链接 https://stackoverflow.com/questions/9176319
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
这里存在一些问题。首先,一个小问题是:在逗号之前,“.-,”会尽可能匹配最少的字符,也就是零个字符。你应该锚定匹配字符串的开头。
更复杂的问题是,你使用了希伯来文字母。问题在于 Lua 没有概念 关于多字节字符。
如果你使用像 Windows-1255 或 ISO-8859-8 这样的 8 位编码,那么你可能可以简单地匹配字符类
[ת-×]
。如果你已经正确设置了希伯来语环境变量,%l
对你来说应该可以很好地工作。如果你使用 UTF-8 或任何其他使用多字节字符的编码,那么你必须构造一个正则表达式,将所有希伯来字母作为八位序列进行转义。阿列夫是 U+05D0x,UTF-8 中将表示为
0xD7 0x90
。塔夫是 U+05EA,将被编码为0xD7 0xAA
。在 Lua 中,你可以使用反斜杠 + 十进制代码转义任何 8 位字符。在 UTF-8 中编码的所有希伯来字符的第一个字节都是相同的——
0xD7
,也就是"\215"
。第二个字符可以是任何从"\144"
到"\170"
的值。因此,将匹配单个希伯来字母的正则表达式是:"\215[\144-\170]"
。将其放在你原来使用单个点匹配任何字符的正则表达式中。当然,以上推理必须针对与 UTF-8 不同的编码进行修改。在希伯来语中,从右向左的书写方向是另一个需要注意的事情。