使用 Lua 模式匹配捕获标记句子中的单词

示例行:('The','DT')('mirror','NN')('can','MD')('barely','RB')('contain','VB')('me','PRP')('。','。')

我需要的是:

The
mirror
can
barely
contain
me
.

使用此模式将返回整行而不是每个单词(以及一些杂音):

txt = "('The','DT')('mirror','NN')('can','MD')('barely','RB')('contain','VB')('me','PRP')('。','。')"

for i in txt:gmatch("%('.+',") do
    print(i)
end
点赞
用户1009479
用户1009479

+修饰符是贪婪的,使用-代替:

对于txt:gmatch(%('(。 - )''))初次尝试输出的结果是贪婪匹配。如果希望重复匹配“'”和逗号而不是匹配(匹配正则表达式字符。)可以改为匹配“'”和后面跟着零个或更多非逗号字符的子字符串。

2016-03-01 11:21:56
用户3979429
用户3979429

当您使用 "+" 修饰符时,它会尽可能匹配更多内容,而 "-" 正好相反。因此,您的代码正在捕获很多内容,而应尝试使用以下代码:

for i in txt:gmatch("%('(.-)',") do
    print(i)
end
2016-03-01 17:05:55