正则表达式(C#和Lua)

一. C#版本

  1. "\b" 代表要匹配的单词的第一个字符和最后一个字符,简称元字符
  2. "." 代表除了换行符号之外的任意字符
  3. "\d" 代表一位数字(等价于[0-9]):"\d\d" 等价于 \d{2}
  4. "\s" 匹配任意的空白符,包括空格(\space),Tab(\t),换行(\n)
  5. "\w" 匹配 字母,数字,下划线,汉字(等价于[0-9A-Za-z])
  6. "^" 匹配字符串的开始
  7. "$" 匹配字符串的结束
    .
  8. "" 代表""前面的内容可以重复任意的次数(可以是0次)
  9. "+" 代表"*"前面的内容可以重复任意的次数(最少1次)
  10. "?" 重复零次或者一次
  11. "{n}" 重复n次
  12. "{n,}" 重复n次或者更多次
  13. "{n,m}" 重复n到m次
    Example:
  14. (0\d{2})[- ]?\d{8}|0\d{2}[- ]?\d{8} : 这个表达式可以匹配几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等。分析:首先是一个转义字符(,它能出现0次或1次(?),然后是一个0,后面跟着2个数字(\d{2}),然后是)或-或空格中的一个,它出现1次或不出现(?),最后是8个数字(\d{8})。 中间的"|"代表"或"条件
  15. ((2[0-4]\d|25[0-5]|[01]?\d\d?).){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) :描述一个正确的IP地址

二. Lua版本

-- 常规替换
x = string.gsub("hello world", "(%w+)", "lua")
print("\n",x)
-- 都用匹配的第一个串2来替换
x = string.gsub("hello world", "(%w+)", "%1 %1")
print("\n",x)
-- 用匹配出的完成串
2来替换第一次匹配的结果
x = string.gsub("hello world", "%w+", "%0 %0", 1)
print("\n",x)
-- 使用一个完整匹配和一个匹配的第二个串来替换
x = string.gsub("hello world from c to lua", "(%w+) (%a+)", "%0 %2")
print("\n",x)
-- 调用系统函数来替换
x = string.gsub("os = OS, pathext =PATHEXT", "%(%w+)", os.getenv) print("\n",x) -- 调用自定义函数 x = string.gsub("4 + 5 =return 4+5", "%(.-)%", function (s) return loadstring(s)() end) print("\n",x) -- 调用表来替换 local t = {name="lua", version="5.1"} x = string.gsub("name-version.tar.gz", "%(%w+)", t)
print("\n",x)

--userdata
tolua.type(userdata)
--cc.export.XX
--文件中返回类型名称

匹配模式:
( ) . % + - * ? [ ^ $
.(点): 与任何字符配对
%a: 与任何字母配对
%c: 与任何控制符配对(例如\n)
%d: 与任何数字配对
%l: 与任何小写字母配对
%p: 与任何标点(punctuation)配对
%s: 与空白字符配对
%u: 与任何大写字母配对
%w: 与任何字母/数字配对
%x: 与任何十六进制数配对
%z: 与任何代表0的字符配对
%b: 匹配对称字符里面的内容: 如 %b() , %b%{%}
%x(此处x是非字母非数字字符): 与字符x配对. 主要用来处理表达式中有功能的字符

  • 匹配前一字符1次或多次
  • 匹配前一字符0次或多次
  • 匹配前一字符0次或多次
    ? 匹配前一字符0次或1次
    ^ 匹配模式的补集 [^%d] 非数字
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 模式匹配函数 在string库中功能最强大的函数是: 代码如下: 这些函数都是基于模式匹配的。与其他脚本语言不同的...
    passiony阅读 16,193评论 1赞 9
  • 正则表达式到底是什么东西?字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等...
    狮子挽歌阅读 2,328评论 0赞 9
  • 注:本篇文章只为方便查看,特此保留,如有冒犯,敬请谅解!!! 本文目标 30分钟内让你明白正则表达式是什么,并对它...
    阿杰Alex阅读 1,594评论 0赞 10
  • 忘了从哪收集的资料了,放这儿,以备不时之需。 只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{...
    study_monkey阅读 1,513评论 0赞 7
  • Python中的正则表达式(re) import rere.match #从开始位置开始匹配,如果开头没有则无re...
    BigJeffWang阅读 7,690评论 0赞 99

友情链接更多精彩内容