Lua 与 string.match 的行为很有趣

Lua behaves funny with string.match

这是一个非常简单的代码,但没有按预期工作:

function convert(str)
  local _,name = string.match(str, [[<a href=(.*)>(%w+)</a>]])
  return name
end

print(convert("<a href=\"/organization/1/\">A</a>"))

print(convert("<a href=\"/organization/2/\">B</a>"))

print(convert("<a href=\"/organization/3/\">C</a>"))

我预计:

A
B
C

得到:

A
nil 
nil

谁能解释一下 Lua 在这种情况下是如何工作的?

好的,知道了...

我为 Whosebug 提供了示例值。实际值有空格。我将函数转换为

function convert(str)
  local _,name = string.match(str, [[<a href=(.*)>(.*)</a>]])
  return name
end