zoukankan      html  css  js  c++  java
  • lua正则表达式如何匹配中文

     1 function CheckChinese(s) 
     2     local ret = {};
     3     local f = '[%z1-127194-244][128-191]*';
     4     local line, lastLine, isBreak = '', false, false;
     5     for v in s:gfind(f) do
     6         table.insert(ret, {c=v,isChinese=(#v~=1)});
     7     end
     8     return ret;
     9 end
    10 for k, v in ipairs(CheckChinese('a中文b+')) do 
    11     print(k,v.c,#v.c,v.isChinese);
    12 end
    13 -------------------
    14 1    a    1    false
    15 23    true
    16 33    true
    17 4    b    1    false
    18 5    +    1    false

    贴一段匹配中英文混合输入的代码

     1 function dlg:onBtnOKClick()
     2     local input = self:getInputNewContent()
     3     if input == "" then 
     4         flytip("输入不能为空")
     5         return
     6     end
     7     if self.pattern then
     8         if self.isContainChinese then
     9             local charCount = 0
    10             for i, v in ipairs(self:CheckChinese(input)) do 
    11                 if v.isChinese then
    12                     charCount = charCount + 2
    13                 else
    14                     charCount = charCount + 1
    15                     if string.find(v.c, self.pattern) == nil then
    16                         flytip("抱歉,您输入的内容含有非法字符或屏蔽词,请重新输入。")
    17                         return
    18                     end
    19                 end
    20             end
    21             if self.characterLimit then
    22                 if charCount > self.characterLimit then
    23                     flytip("抱歉,您输入的字符长度有误,请重新输入。")
    24                     return
    25                 end
    26             end
    27         else 
    28             if string.find(input, self.pattern) == nil then
    29                 flytip("抱歉,您输入的内容含有非法字符或屏蔽词,请重新输入。")
    30                 return
    31             end
    32         end
    33     end
    34     
    35     self:Hide()
    36     if self._onOK then
    37         self._onOK()
    38     end
    39 end
  • 相关阅读:
    11
    消除左递归
    4.K均值算法--应用
    3.K均值算法
    2.机器学习相关数学基础作业
    机器算法学习第一次作业
    第十五次作业
    第十四次作业
    第十三次作业
    第十二次作业
  • 原文地址:https://www.cnblogs.com/AaronBlogs/p/7428876.html
Copyright © 2011-2022 走看看