`

lua 字符串扩展处理类

    博客分类:
  • lua
lua 
阅读更多
类代码
local StringUtil = {}

StringUtil.__index = StringUtil

function StringUtil:new() 
	local self = {}
	setmetatable(self, StringUtil)
	return self
end

function StringUtil:trim(s) 
	return (string.gsub(s, "^%s*(.-)%s*$", "%1"))
end

function StringUtil:unescape(s) 
	s = string.gsub(s, "+", " ")
	s = string.gsub(s, "%%(%x%x)", function(h)
		return string.char(tonumber(h, 16))	
	end)
	return s
end

function StringUtil:escape(s) 
	s = string.gsub(s, "([$=+%c])", function(c)
		return string.format("%%%02X", string.byte(c))	
	end)
	s = string.gsub(s, " ", "+")
	return s
end

function StringUtil:encode(t) 
	local s = ""
	for k, v in pairs(t) do
		s = s .. "&" .. self:escape(k) .. "=" .. self:escape(v)
	end

	return string.sub(s, 2)
end

function StringUtil:decode(s)
	local t = {}
	for name, value in string.gfind(s, "([^&=]+)=([^&=]+)") do
		name = self:unescape(name)
		value = self:unescape(value)
		t[name] = value
	end
	return t
end

return StringUtil



调用方式
local StringUtil = require 'StringUtil'

local a = " aa "
local util = StringUtil:new()

print(util:trim(a))

t = {name = "aaa", query = "a+b = c", q = "yes or no"}
a = (util:decode(util:encode(t)))
for k, v in pairs(a) do
	print(k, v)
end
分享到:
评论

相关推荐

    lua 字符串扩展 简易版

    简单的lua操作字符串 去除空格 分割字符串到数组 验证.........

    lua检测系统进程和所有窗口类名lua字符串加密文本加密(调用dll的)

    本文将详细探讨标题和描述中提到的知识点:使用lua检测系统进程和窗口类名,以及lua字符串的加密与解密,包括调用dll进行高级操作。 首先,我们关注的是“lua检测系统进程和所有窗口类名”。在lua中,通常需要通过...

    Lua性能优化技巧(四):关于字符串

    尽管Lua的设计追求简洁和高效,但在处理大量字符串连接时,还是需要程序员了解和注意Lua字符串内部化的机制,采取合适的方法来优化代码性能。这样可以确保在追求代码清晰和可维护的同时,也能保证程序的运行效率。

    lua proto 解决int64 解析

    对于int64,可以将其转换为字符串,然后在Lua中进行处理。例如,你可以将int64值转换成十六进制字符串,然后在需要时再还原回去。这种方法虽然增加了代码复杂性,但可以避免依赖额外的库。 3. 分拆处理:另一种方法...

    lua扩展库V1.51

    这对于数据序列化、网络传输或存储特别有用,它可以将多个变量按照特定格式组合成一个单一的字符串。 5. **pio库**: - `pio`库可能是用于处理并行输入输出(Parallel Input/Output)的,允许lua程序控制GPIO引脚...

    lua扩展库V1.6

    上述内容涵盖了lua扩展库V1.6的主要功能和用法,通过这些扩展库,Lua语言的应用范围得到了极大的扩展,可以被广泛应用于嵌入式系统开发、网络编程、数据处理、信号处理等领域。使用这些扩展库能够帮助开发者以更加...

    LuaXml工具

    1. **XML解析**:LuaXML提供了解析XML文档的API,可以将XML字符串或文件转换为 Lua 数据结构,如表(table)。这样,用户可以方便地遍历、访问和修改XML文档的内容。 2. **事件驱动解析**:LuaXML可能采用了事件...

    lua大数据处理_大数据_lua_

    Lua的表格可以看作是一种关联数组,不仅可以存储数值、字符串,还可以存储函数和其他表格,这种灵活性使得它非常适合处理复杂的数据结构。例如,你可以用一个表格来表示一个数据集,每个元素代表一条记录,记录的各...

    云风-lua源码欣赏-lua-5.21

    书中的内容涵盖了Lua的多个核心方面,包括源文件划分、代码风格、虚拟机实现、内存管理、全局状态机以及字符串处理等。 首先,第一章概览中,作者深入到源代码层面,分析了Lua的源文件结构,这包括了源文件的组织...

    C扩展Lua的样例考虑到实际项目中经常遇到本地化需求的情况

    // 将字符串压入栈 return 2; // 返回值的数量 } LUALIB_API int my_init(lua_State *L) { lua_register(L, "foo", my_foo); // 注册函数 return 0; } ``` 2. **编译C代码为.so文件**: - 使用`gcc-shared`...

    delphi7与lua相互调用的例子

    例如,可以导入`lua_pcall`来执行Lua脚本,`lua_gettop`获取 Lua 栈顶的元素数量,以及`lua_pushstring`和`lua_tostring`来传递和转换字符串等数据类型。这些函数的使用方式与C语言中的API保持一致。 在Delphi项目...

    lua源码剖析

    3. Lua字符串操作 在`lstrlib`库中,大部分涉及字符串的函数都会先调用`luaL_checklstring`检查参数并获取字符串。这个函数实际上是对`lua_tolstring`的封装,确保参数是字符串类型。如果需要修改字符串,会先创建`...

    air202串口操作lua源码

    Lua提供了丰富的字符串处理函数,如`string.sub()`、`string.find()`和`string.gmatch()`,帮助我们解析数据流。 5. **控制继电器**:继电器是一种电子开关,可以通过控制其状态实现电路的通断。在Lua中,我们可能...

    LUA的JSON库

    - JSON字符串 -> LUA字符串 - JSON数字 -> LUA数字 - JSON布尔值 -> LUA布尔值 - JSON null -> LUA nil 4. **处理特殊场景** - **处理嵌套结构**:JSON中的嵌套对象和数组在LUA中会被转换为嵌套的表。 - **...

    say:Lua字符串哈希库,对国际化很有用

    说 say是用于i18n或您需要命名空间字符串的任何其他情况的简单字符串键/值存储。 退房的扩展例子。 s = require ( " say " )s: set_namespace ( " en " )s: set ( ' money ' , ' I have %s dollars ' )s: set ( ' ...

    LUA脚本语言参考文档

    词法分析阶段,Lua会处理各种token,包括标识符、数字、字符串和操作符等。在Lua中,操作符如加号、等号、分号等都有其特定的用法和含义。Lua的语法用扩展的BNF(巴科斯范式)表达式描述,通过这种方式定义了有效...

    unity lua表table 优化,支持多线程处理

    三、具体实践:Lua字符串优化 - 孙俊杰的"unity lua表string优化"可能包含了关于字符串池的优化策略。字符串池是一种将重复字符串合并为一个实例的机制,可以减少内存碎片,提高内存利用率。在Lua中,使用`string....

    Json11ForLua_Lua操作Json的C扩展模块_

    这样的API通常包括解析JSON字符串到Lua表,以及将Lua表转换成JSON字符串的功能。 标签“Lua操作Json的C扩展模块”进一步强调了Json11ForLua的主要功能,即为Lua提供方便快捷的JSON处理能力。在实际应用中,例如游戏...

    Lua-1.0.113 luajava

    3. 数据类型转换:Lua和Java之间的数据类型可以相互转换,如Lua表可以映射为Java集合,Lua字符串可以作为Java字符串使用等。 4. 错误处理:当Lua脚本运行时发生错误,可以捕获并处理Java异常。 LuaJava的使用场景...

    Lua 5.1 中文参考手册.pdf (入门与提高)

    Lua还支持长字符串的定义方式,即使用两个正方括号之间插入等号定义不同级别的长字符串。 Lua的基本词法单元包括标识符、关键字、数字字面量、字符串字面量、运算符和分隔符。Lua的语法和句法在官方手册中有详细的...

Global site tag (gtag.js) - Google Analytics