L3-06. 正则表达式

一. 查找字符串

--[=[
    string.find(str,匹配内容[,i[,是否关闭模式匹配]])查找字符串
    语法: 
        string.find(str,匹配内容[,i[,是否关闭模式匹配]])
    功能: 
        在str中查找匹配内容,并返回开头位置和结束位置
    参数: 
        参数str(必选):        待查找的字符串
        参数匹配内容(必选):    要匹配的内容, 支持正则匹配
        参数i(可选):          开始匹配的位置,默认为1在第一个位置开始匹配,可以为负数
        参数是否关闭正则匹配:   默认为true,关闭正则匹配,false为开启正则匹配
    返回值:
        返回查找到字符串的开头位置和结束位置
--]=]

do
    local str 
    str = "<123><123>"
    print ( string.find(str,"123",-5,true) )                --输出结果: 7   9
    
     str = "<123><123>"
    --在find中只有带上括号才会输出匹配到的内容
    print ( string.find(str,"<.*>") )                  --输出结果: 1  10
    print ( string.find(str,"(<.*>)") )                --输出结果: 1  10  <123><123>
    
    str = "<123><456>"
    --输出前两个是整个正则匹配成功的开始位置和结束位置
    print ( string.find(str,"<(%d-)><(456)>",1,false) )     --输出结果: 1    10    123    456
end

 

二. 匹配字符串

  1. string.match (s, 正则匹配格式[, 开始位置])

--[=[
    string.match(str,pattern[,i]) 正则匹配字符串
    语法: 
        string.match(str,正则匹配格式[,i])
    功能: 
        在str中正则匹配内容,返回匹配到的内容或者捕获到的内容"()"
    参数: 
        参数str(必选):        待匹配的字符串
        参数pattern(必选):    正则匹配表达式
        参数i(可选):          开始匹配的位置,默认为1在第一个位置开始匹配,可以为负数
    返回值:
        返回匹配到的内容或者捕获到的内容"()"
--]=]

local str = "www.12345.12345785.com"

 

  2. string.gmatch (s, 正则匹配格式[, 开始位置])

 

posted @ 2022-09-18 18:10  小书臣  阅读(18)  评论(0编辑  收藏  举报