2

我怎么能string.gmatch(text, pattern)这样做:

text = "Hello.%23 Awesome7^.."
pattern = --what to put here?
for word in string.gmatch(text, pattern) do
  print(word)
end
--Result
>test
Hello.%23
Awesome7^..
>

我一直在使用"%w+%p",但这会导致:

>test
Hello.
%
23
Awesome7^
.
.

这不是预期的结果。

注意:我没有测试过这个确切的字符串,它可能会有所不同......但仍然不会产生所需的结果

4

1 回答 1

3

从您的示例中,每个单词都不包含空格,并且由空格分隔,因此最简单的模式是"%S+"

text = "Hello.%23 Awesome7^.."
pattern = "%S+"
for word in string.gmatch(text, pattern) do
  print(word)
end

"%s"匹配空格字符,"%S"匹配非空格字符。

于 2014-05-16T00:56:13.403 回答