查找一个字符串是以 0 或多个空格开头,后跟一个可能包含特殊字符的字符串

我需要找到一个以 0 或多个空格开头,后跟一个我事先不知道的注释字符串的字符串,所以我想构建模式:

local pattern = "^(%s" .. comment_string .. ")"
if str:find(pattern) then
-- ...

问题是 comment_string 大多数情况下包含特殊字符(即 Lua 中得到 "--" ,但是我需要 "%-%-" 使模式正常工作)。我尝试了很多方法,但我无法找到使其工作的方法。有什么建议吗?

原文链接 https://stackoverflow.com/questions/70745223

点赞
stackoverflow用户12354066
stackoverflow用户12354066

local str = "--test" local pattern = "^%-%-%s*(.*)$" local _, _, contents = str:find(pattern) print(contents)


本地变量str的值为"--test",本地变量pattern的值为"^%-%-%s*(.*)$"。

str中使用find方法并传入pattern作为参数,使用匹配字符串的返回结果为contents。接着,使用print函数打印contents

结果为"test",因为pattern匹配以"--"开头,后面可以跟空格(0个或多个),最后是任意字符(0个或多个)。因此,"test"被匹配并作为contents的值被返回。

2022-01-17 17:30:22