lua中的正则表达式

前言

前段时间做一个需求,判断用户输入的内容是否是电话号码,只匹配国内的,由于代码是使用的lua写的,所以就直接在前端的lua代码中,对用户的输入内容进行匹配。
在此使用了lua的正则匹配。

具体内容

判断是否是电话号码

^1[3-9]%d{9}$

在Lua中用于判断密码是否为顺子的正则表达式

"^1234567890$|^0987654321$|^2345678901$|^3210987654$|^4567890123$|^5432109876$|^6789012345$|^7654321098$|^8901234567$|^9876543210$"

此正则表达式只适用于包含10个数字字符的密码。如果需要匹配不同长度的密码,请相应地修改正则表达式。

要使用正则表达式判断字符串是否为数字顺子,可以使用以下正则表达式:

local str = "123456"
local pattern = "^1?2?3?4?5?6?7?8?9?$"
if str:match(pattern) then
  print("是数字顺子")
else
  print("不是数字顺子")
end

其中,^表示字符串的开始,$表示字符串的结尾,?表示前面的字符可以出现0次或1次。因此,该正则表达式匹配的是由0个或1个"1"、0个或1个"2"、0个或1个"3"、0个或1个"4"、0个或1个"5"、0个或1个"6"、0个或1个"7"、0个或1个"8"、0个或1个"9"组成的字符串,也就是数字顺子的所有可能性。如果字符串匹配该正则表达式,则说明它是数字顺子。

其他的正则匹配格式

–替换掉字符里的所有空格

--local text = string.gsub(textvalue, "%s+", "")

–替换掉英文标点符号

--local text = string.gsub(textvalue,"%p+","")

–自定义字符或标点 用’[]‘括起来,加上’%’ ,后面加上要剔除的字符 eg:剔除字符串中的a和b

--local text = string.gsub(textvalue, "[%a%b]", "")
local textvalue = "爱谁;'撒,打.!#$%^*电活"
local text = string.gsub(textvalue,"%p+","")
print(text)
print(string.gsub(textvalue,"%p+",""))

以下示例代码使用了Lua的字符串库函数:string.match()和string.find()。

local str = “Abc123def”

– 判断是否同时包含数字、大写字母和小写字母

if string.match(str, "%d") and string.match(str, "%u") and string.match(str, "%l") then
print("字符串同时包含数字、大写字母和小写字母")
else
print("字符串不同时包含数字、大写字母和小写字母")
end

– 判断是否同时包含数字、大写字母和小写字母

if string.find(str, "%d") and string.find(str, "%u") and string.find(str, "%l") then
print("字符串同时包含数字、大写字母和小写字母")
else
print("字符串不同时包含数字、大写字母和小写字母")
end

lua中支持的%转义字符

字符含义
%a字母a-z,A-Z
%b%bxy,以x和y进行成对匹配
%c控制字符ASCII码 十进制转义表示为\0 - \31
%d数字 0 - 9
%f%f[char-set],边界匹配,前一个不在范围内,后一个在范围内
%g除了空格以外的可打印字符 十进制转义表示为\33 - \126
%l小写字母 a - z
%u大写字母 A - Z
%s空格 十进制转义表示为\32
%p标点符号,即!@#$%^&*()`~-_=+{}:"<>?[];',./
%w字母数字 a - z, A - Z, 0 - 9
%x十六进制符号 0 - 9, a - f, A - F
重复0次或者1次 贪婪匹配
重复0次或者多次 懒惰匹配
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gxy_w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值