如何将字符串的开头或结尾与Lua中的string.match相匹配?

时间:2012-04-15 05:36:23

标签: lua

我使用它来匹配两个单词之间出现的文字:

a1 = "apple"
a2 = "bear"
match_pattern = string.format('%s(.*)%s', a1, a2)
str = string.match(str, match_pattern)

如何在字符串的开头与数字或数字以及字符串的结尾之间进行匹配?

1 个答案:

答案 0 :(得分:2)

  

字符串的开头和数字或数字以及字符串的结尾之间是否匹配?

模式开头的

^将其锚定到字符串的开头。 模式末尾的`$'将其锚定到字符串的末尾。

s = 'The number 777 is in the middle.'

print(s:match('^(.*)777')) --> 'The number '
print(s:match('777(.*)$')) --> ' is in the middle.'

或匹配任何数字:

print(s:match('^(.-)%d+')) --> 'The number '
print(s:match('%d+(.*)$')) --> ' is in the middle.'

第一个模式略有变化,使用非贪婪匹配,匹配尽可能少的字符。如果我们使用.*而不是.-,我们就会匹配The number 77