Lua 中的模式匹配,用于剪去文本块开头和结尾的单词
2016-12-5 13:1:56
收藏:0
阅读:65
评论:1
我的目标是找到一个类似于下面这样的模式,
space channel space
我想要剪掉文本块(页)的开头和结尾。
我在 Lua 中编写了以下代码。我的下面的代码只适用于一个字母的模式。
我应该如何使它适用于任何具有此 space word space 模式的单词,该模式应裁剪出出现在 页面开头和结尾的数组索引值?
singleChar = ' and third party cookies (such as the DoubleClick cookie) together to (a) inform, optimize and serve ads based on a users past visits to '
totaLen = string.len(singleChar)
totalen = -totaLen
print('actual singleChar - '..singleChar)
singleCharChecking = string.sub(singleChar,-2,-1)
print ('singleCharChecking - '..singleCharChecking)
checkPattern = string.gmatch(singleCharChecking,"%s%a")
for word in checkPattern do
checkPatternLen = string.len(word)
print(checkPatternLen)
if (checkPatternLen == 2) then
singleChar = string.sub(singleChar,totalen,-2)
print('single char - '..singleChar)
end
end
输入:singleChar = ' and third party cookies (such as the DoubleClick cookie) together to (a) inform, optimize and serve ads based on a users past visits to '
期望的输出: third party cookies (such as the DoubleClick cookie) together to (a) inform, optimize and serve ads based on a users past visits
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在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 代码?

情况1:应剥离开头或结尾的模式
或者,您可以将其拆分为两个 gsub 操作,从而使其变得不那么复杂:
local s = string.gsub(" and some text channel ", "^%s+%S+%s+", "") s = s:gsub("%s+%S+%s*$", "")第一行将删除初始的 1+ 空格、1+ 非空格、1+ 空格,第二行将条纹字符串末尾相同的模式。
情况2:如果必须同时存在起始和结束模式
由于您想要从字符串中删除第一个和最后一个非空格块,因此可以使用
string.gsub(" and some text channel ", "^%s+%S+%s+(.*%S)%s+%S+%s+$", "%1")请参见在线 Lua 演示。
详细信息:
^- 字符串的开头%s+- 1+ 空格%S+- 1+ 非空格%s+- 1+ 空格(.*%S)- 组1捕获 0+ 字符 贪婪地一直到最后一个非空格字符,然后是%s+%S+%s*$- 字符串末尾的 1+ 空格 (%s+),1+ 非空格 (%S+) 和 0+ 空格 (%s*) ($)。替换部分中的
%1将组1内容重新插入结果。