标签: lua-patterns

为什么lua的字符串模式匹配呢?

我有一个监控CPU和GPU温度的外部应用程序......

我正在使用Lua和外来扩展来获取这些值(通过GetWindowText)并对这些值进行一些模式匹配,有效地从字符串中提取温度数字,默认情况下显示为CPU 67.875 °C......
但也许我对于LUA中的模式如何工作有错误的想法(因为它们看起来不像正则表达式)?

我使用的模式[%d]+[.%d+]*应该匹配0到100.0之间的任何数字,对吗?
奇怪的是,当值达到56.5度左右时,我得到了令人难以置信的奇怪输出(见链接).

为什么会这样?
如何以0到100之间的格式提取正确的浮点值(作为字符串)XYY.ZZZ,其中X不是可选的,Y是可选的,.除非Z存在,否则是可选的?

windows winapi lua lua-patterns

4
推荐指数
1
解决办法
516
查看次数

当我们在Lua中没有`|`运算符时如何验证这个字符串?

我有以下形式的字符串:

cake!apple!

apple!

cake!juice!apple!cake!

juice!cake!
Run Code Online (Sandbox Code Playgroud)

换句话说,这些字符串由三个子串"cake!","apple!""juice!".

我需要验证这些字符串.因此,使用正则表达式执行此操作的方法是:

/^(apple!|juice!|cake!)*$/
Run Code Online (Sandbox Code Playgroud)

但是Lua的模式没有|运算符,所以它似乎无法以这种方式完成.

如何在Lua中验证我的字符串?

(我不关心字符串的内容:我只关心它们是否符合(验证).)

我知道编写代码来做到这一点,但我想不出一个简短的方法来做到这一点.我正在寻找一个简短的解决方案.我想知道是否有一个我不知道的优雅解决方案.有任何想法吗?

string lua lua-patterns

4
推荐指数
1
解决办法
103
查看次数

Lua string.match模式为MSN weatherservice

我使用MSN weatherservice.现在我有以下问题string.match.所有变量都被填充,除了sWindRichtung.它等于nil.

sHumidity, rest = string.match(rest,"humidity=\"([^\"]+)\"(.*)");
sWind, rest = string.match(rest,"windspeed=\"([^\"]+)\"(.*)");
sWindRichtung, rest = string.match(rest,"winddisplay=\"([^\"]+)\"(.*)");
Run Code Online (Sandbox Code Playgroud)

要过滤的字符串是: humidity="77" winddisplay="11 km/uur N" windspeed="11"

我认为角色/是问题所在.

string lua lua-patterns

4
推荐指数
1
解决办法
84
查看次数

Is there an efficient and elegant way to truncate number like this in Lua?

What I want to do

What I want to do is really simple. I want use Lua to check lines in a Plist file.

Let's say if a line in Plist, is <integer>-1.00</integer>, I need to cut the .00 off to make it be <integer>-1</integer>.

What I did

I use a function to read the whole file content and do line by line check and replace.

local function doLineClean( cont )
    newcont = ''
    string.gsub( cont, "(.-)\r?\n", function(line) …
Run Code Online (Sandbox Code Playgroud)

lua lua-patterns

4
推荐指数
1
解决办法
614
查看次数

Gua的Lua模式

我试图在Lua中实现一个模式,但没有成功

我需要的模式就像正则表达式: [a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}

这是验证guid.

我无法找到在Lua中找到工具正则表达式的正确方法,也无法在文档中找到.

请帮我实现guid以上的正则表达式.

regex lua guid lua-patterns

4
推荐指数
1
解决办法
852
查看次数

这个模式^ [%w - .] + $在Lua中是什么意思?

刚刚遇到这种模式,我真的不明白:

^[%w-.]+$
Run Code Online (Sandbox Code Playgroud)

你能给我一些例子来匹配这个表达吗?

lua lua-patterns

4
推荐指数
1
解决办法
2136
查看次数

Lua病理模式是否具有指数运行时间?

众所周知,以递归方式(而不是NFA/DFA)实现的正则表达式在某些情况下可能需要指数运行时间.Lua模式是通过递归匹配器实现的(它们允许回溯),但它们的功能不如正则表达式(忘记%b模式).

Lua模式是否需要指数运行时间?并且没有回溯(任何出现的%0,%1,%2 ...模式)?如果是这样,我会欣赏一些例子.

lua time-complexity lua-patterns

4
推荐指数
1
解决办法
89
查看次数

电子邮件地址的 Lua 模式匹配

我有以下代码:

if not (email:match("[A-Za-z0-9%.]+@[%a%d]+%.[%a%d]+")) then
     print(false)
end
Run Code Online (Sandbox Code Playgroud)

目前没有捕获

 "test@yahoo,ca"  or "test@test1.test2,com"
Run Code Online (Sandbox Code Playgroud)

作为错误。

我认为通过将输入限制为%a- 字符和%d- 数字,我会默认捕获任何标点符号,包括逗号。

但我想我错了。或者还有其他我没有看到的东西。第二双眼睛将不胜感激。

email lua lua-patterns

4
推荐指数
1
解决办法
2038
查看次数

如何检查一个单词是否在Lua中的字符串中显示为整个单词

不确定如何检查单词是否作为字符串中的整个单词出现,而不是单词的一部分,区分大小写.例如:

Play 是字符串

Info Playlist Play pause
Run Code Online (Sandbox Code Playgroud)

但不在字符串中

Info Playlist pause
Info NowPlay pause
Run Code Online (Sandbox Code Playgroud)

string lua string-matching lua-patterns

4
推荐指数
1
解决办法
1639
查看次数

Lua匹配字符串中的字符后的所有内容

我是Lua的新手,很难理解模式匹配.我试图弄清楚如何在冒号后匹配字符串中的所有内容,并将该部分字符串放入变量中.我在网上四处看看并没有太多运气,或者我只是没有看到它.那我该怎么做呢?

例如,假设我有一个名为my_string等于"hello:hi_there"或类似的变量.如何"hi_there"在不改变的情况下提取到另一个变量my_string

看起来我需要使用string.match(),但是用什么模式来实现我的目标?

lua lua-patterns

4
推荐指数
1
解决办法
1602
查看次数