找到’.’与string.find()

我正在尝试进行简单的字符串操作:获取文件名称,而不使用扩展名.只有,string.find()似乎有点问题:
s = 'crate.png'
i,j = string.find(s,'.')
print(i,j) --> 1 1

并且只有点:

s = 'crate.png'
i,'p')
print(i,j) --> 7 7

这是一个错误,还是我做错了什么?

解决方法

string.find(),认情况下,在字符串中找不到字符串,它在字符串中找到 patterns.更多完整信息可以在链接中找到,但这是相关部分;

The ‘.’ represents a wildcard character,which can represent any character.

要实际找到字符串.,需要使用百分号%来转义句点.

编辑:或者,你可以传入一些额外的参数,find(pattern,init,plain),它允许你传入true作为最后一个参数并搜索普通字符串.那会是你的陈述;

> i,'.',1,true)   -- plain search starting at character 1
> print(i,j) 
6 6

相关文章

1.github代码实践源代码是lua脚本语言,下载th之后运行thmai...
此文为搬运帖,原帖地址https://www.cnblogs.com/zwywilliam/...
Rime输入法通过定义lua文件,可以实现获取当前时间日期的功能...
localfunctiongenerate_action(params)localscale_action=cc...
2022年1月11日13:57:45 官方:https://opm.openresty.org/官...
在Lua中的table(表),就像c#中的HashMap(哈希表),key和...