标签: lua-patterns

Lua:模式匹配多个字符与?重复算子

根据文档,所有Lua重复运算符仅适用于单个字符,因此您可以匹配

string.match('123', '1?(%d+)') -- returns 23
Run Code Online (Sandbox Code Playgroud)

但无法匹配多字符字符串:

string.match('123', '(12)?(%d+)') -- want this to return 3
Run Code Online (Sandbox Code Playgroud)

文档说这可能通过"多种模式和自定义逻辑",但我不知道这意味着什么.有人能提供一种模式匹配的方法吗?基本上,12应该可选地匹配all-or-nothing,并返回数字字符串的其余部分.

regex lua lua-patterns

5
推荐指数
1
解决办法
771
查看次数

如何从 URL 中提取域

我需要four.fiveone.two.three.four.fiveLua 字符串变量中的URL ( ) 中提取域 ( ) 。

我似乎无法在 Lua 中找到执行此操作的函数。

编辑:

当 URL 到达我时,这些http东西已经被剥离了。所以,一些例子是:

a) safebrowsing.google.com 
b) i2.cdn.turner.com 
c) powerdns.13854.n7.nabble.com 
Run Code Online (Sandbox Code Playgroud)

所以我的结果应该是:

a) google.com
b) turner.com
c) nabble.com
Run Code Online (Sandbox Code Playgroud)

string dns lua lua-patterns

5
推荐指数
2
解决办法
4286
查看次数

Lua字符串操作模式匹配替代"|"

有没有办法我可以做一个匹配的字符串模式,"ab|cd"因此它匹配任何一个"ab""cd"在输入字符串中.我知道你使用的东西就像"[ab]"一个模式,它将匹配任何一个"a""b",但这只适用于一个字母的东西.

请注意,我的实际问题要复杂得多,但基本上我只需要知道Lua的字符串操作中是否存在OR函数.我真的希望把的或东西,等各个侧面等图案但是,如果它与类似"hello|world"和匹配"hello, world!"与双方"hello""world"则这是伟大的!

string lua parsing lua-patterns

5
推荐指数
2
解决办法
718
查看次数

在 Lua 中从 gmatch 返回的列表创建数组

我正在用 Lua 编程,到目前为止我已经有了这个。

S=tostring(M[i].AllSegmentsList)      --it returns "MSH, PID"
for i in string.gmatch(S, ",") do      --I have  ", " as delimiter 
  t= {}        --Now, I want the values returned by delimiter to be added into an array.
end
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点。

arrays string lua lua-patterns lua-table

5
推荐指数
1
解决办法
4002
查看次数

Lua string.gsub有多个模式

我正在重新命名具有不需要的字母的电影标题.在string.gsub可以替换"的字符串"零值,但我有需要与内容替换大约200字符串模式"".

现在我必须string.gsub为每个模式.我在想是否有办法将所有字符串模式放入单行string.gsub.我在网上搜索了解决方案,但仍然没有得到任何东西.

电影标题是这样的B.A.Pass 2013 Hindi 720p DvDRip CROPPED AAC x264 RickyKT ,我想删除喜欢多余的字符2013,Hindi,720p,DvDRip,CROPPED,AAC,x264,RickyKT.

string lua lua-patterns

5
推荐指数
2
解决办法
4102
查看次数

使用 Lua 模式匹配的可选组捕获

我正在尝试使用简单的模式匹配解析 Lua 中的化学公式。但是,我不知道如何将捕获组指定为可选。这是我想出的模式:

pattern = "(%u%l*)(%d*)"
Run Code Online (Sandbox Code Playgroud)

第一组捕获原子符号(即“H”、“He”等),第二组捕获分子中该原子的编号。这个值通常是一个整数值,但如果是1,则经常被省略,例如:

formula = "C2H6O"
Run Code Online (Sandbox Code Playgroud)

当我尝试进行全局匹配时,如果没有匹配,结果count''而不是我预期的nil.

compound = {}
for atom,count in string.gmatch(formula, pattern) do
    compound[atom] = count or 1
end
Run Code Online (Sandbox Code Playgroud)

显然我可以检查一下,count = ''但我很好奇 Lua 中是否有一个可选的捕获组。

lua lua-patterns

5
推荐指数
1
解决办法
6578
查看次数

在Lua的gsub.无法替换模式

我想替换$br$字符串中的所有短语'\n'.

我写下面的代码:str = string.gsub("String 1 $br$ String 2", "$br$", "\n").

但这不起作用并显示字符串String 1 $br$ String 2.我究竟做错了什么?

lua lua-patterns

5
推荐指数
1
解决办法
210
查看次数

Lua模式设置中符号的重复量

我正在寻找Lua模式设置中重复符号的数量.我尝试检查字符串中的符号数量.正如我在手册中所读到的,即使使用字符类,这仍然是非常有限的,因为我们只能匹配具有固定长度的字符串.

为了解决这个问题,模式支持这四个重复运算符:

  • '*'尽可能多地匹配前一个字符(或类)零次或多次.
  • '+'尽可能多次匹配前一个字符(或类)一次或多次.
  • ' - '将前一个字符(或类)与零或多次匹配,尽可能少.
  • '?' 使前一个字符(或类)可选.

所以,没有关于大括号的信息,{} 例如,

{1,10}; {1,}; {10};
Run Code Online (Sandbox Code Playgroud)

不起作用.

local np = '1'
local a =  np:match('^[a-zA-Z0-9_]{1}$' )
Run Code Online (Sandbox Code Playgroud)

回报np = nil.

local np = '1{1}'
local a =  np:match('^[a-zA-Z0-9_]{1}$' )
Run Code Online (Sandbox Code Playgroud)

返回np = '1{1}':)

这个网址说没有这样的魔术符号:

某些字符(称为魔术字符)在模式中使用时具有特殊含义.神奇的人物是

( ) . % + - * ? [ ^ $
Run Code Online (Sandbox Code Playgroud)

卷曲括号仅作为简单文本工作,不再有效.我对吗?避免这个'错误'的最佳方法是什么?

例如,这里可以阅读大括号的常用用法.

lua lua-patterns

5
推荐指数
1
解决办法
1848
查看次数

模式不匹配*(%(*.%))

我正在尝试string.gmatch参考手册中学习Lua 5.3中的模式(在等等中实现)是如何工作的.

(感谢@greatwolf使用*来纠正我对模式项的解释.)

我正在试图做的是要匹配'(%(.*%))*'(子通过封闭() ;例如,'(grouped (etc))'),这样它会记录

(分组(等))
(等)

要么

分组(等)

但它没有做任何事情(在线编译器).

local test = '(grouped (etc))'

for sub in test:gmatch '(%(.*%))*' do
    print(sub)
end
Run Code Online (Sandbox Code Playgroud)

lua lua-patterns

5
推荐指数
1
解决办法
456
查看次数

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

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

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

lua time-complexity lua-patterns

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

标签 统计

lua ×10

lua-patterns ×10

string ×4

arrays ×1

dns ×1

lua-table ×1

parsing ×1

regex ×1

time-complexity ×1