TC官方合作论坛

 找回密码
 立即注册
查看: 17383|回复: 61

[其他] 【字符串类】正则表达式第一课。通配符,数量限制符。

  [复制链接]
发表于 2017-6-22 19:19:45 来自手机 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 剑仙十号 于 2021-10-16 17:21 编辑

正则表达式第一课。通配符 数量限制符

通配符“.”,占据一个字符位置。
数量限制符? + * {}。这四样不占字符位置。
//var arr=正则表达式匹配(text,表达式,是否_不区分大小写, 是否全局, 是否_不用Unicode码, 是否多行)

第一节:通配符“.”
通配符“.”,匹配除换行符以外_的任何单个字符。
用“.”匹配的东西,可以由换行符分隔。
匹配4个字符的id,表达式这样写:

var text = "A\n1a\n2ab\n2abc\n3abc\n4abc\n4abcd\n5aaaaaa\n6bbbbbb"
//这是拥有多行的text,用"\n"表示换行符
var 表达式 = "...."
var arr=正则表达式匹配(text,表达式,假,真,假,真)
var n = 数组大小(arr)
if(n > 0)
for(var j = 0;  j < n;  j++)
  traceprint(arr[j])
end
end

=======================================================
第二节:数量修饰符 “?”
? 修饰前面一个东西的数量。
后面跟有 ? 的东西,出现1次或0次。

例子:
把3个/4个字符的id,都匹配出来。
var 表达式 = "....?"
在“.”后面跟有一个“?”号,表示这个“.”可以有,也可以无。
有“.”的时候,等价于"....",匹配4个字符的id。
没“.”的时候,等价于"...",匹配3个字符的id。

=======================================================
第三节:数量贪婪符:“+”号,“*”号。
“+”和“*”,修饰前面一个东西的数量。
+前面的东西,出现1次到无限次,所以是贪婪。
*前面的东西,出现0次到无限次,所以是贪婪。
游客,如果您要查看本帖隐藏内容请回复

=======================================================
第四节:数量限制符 { },限制前面东西的数量。

有的时候,我们可能会碰到这样的问题:
有这样一段字符串:
var text = "a=1010;a=msdn;a=1314;a=vs2013;"
我想匹配字符串的:
“1010”、“msdn”、“1314”和“vs2013”。
然后我写了这个表达式
var 表达式 = "a=(.*);" //圆括号里面的东西,表示一个整体的子表达式。
var arr=正则表达式匹配(text,表达式,真,真)
结果……却匹配到了这样一段字符串:
“1010;a=msdn;a=1314;a=vs2013”。

仔细想想:. 可以匹配分号。这表达式确实可以匹配到这样的结果,但不是我想要的结果。我们该怎么办。
问题就在于,没有限制 . 出现的数量。
用{ }去限制前面的东西,出现的数量。
用法:
“{n}”前面的东西,限定出现n次。
“{n,m}”前面的东西,最少出现n次,最多出现m次。
“{n,}”前面的东西,最少出现n次,最多出现无限次。

返回刚才的问题。
用“{}”来限定 "."出现4~6次。
var 表达式 = "a=(.{4,6});"
这样就可以达到我们的要求。

复习下数量符 ? + *
? :匹配前面的整体/子表达式 0次或1次。
例如,"do(es)?" 可以匹配 “do” 或 “does” 中的”do” 。
? 等价于 {0,1}。

+ :匹配前面的整体/子表达式 1次或多次。
例如,"zo+" 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。
+ 等价于 {1,}。

* :匹配前面的整体/子表达式 0次或多次。
例如,"zo*" 能匹配 “z” 以及 “zoo”。
* 等价于{0,}。
游客,如果您要查看本帖隐藏内容请回复

回复

使用道具 举报

 楼主| 发表于 2017-6-22 19:20:01 来自手机 | 显示全部楼层
本帖最后由 剑仙十号 于 2022-6-13 06:05 编辑

二楼,更新信息专用。
tc简单开发_兴趣群:
143358382 (497/500)

tc简单开发_爱好群:
433286131 (498/500)

tc简单开发_高级:
858091293(190/200)

编程四大F:
1、流程控制,2、变量和数组,
3、函数多线程,4、系统api。
本群大神众多,新手众多,群文件内_资源海量。希望新手分享 更多的学习笔记,减少重复造轮子的时间。
回复 支持 反对

使用道具 举报

发表于 2017-6-22 20:05:41 | 显示全部楼层
支持
回复

使用道具 举报

发表于 2017-6-22 22:31:20 | 显示全部楼层
瞧瞧,向学习致敬
回复 支持 反对

使用道具 举报

发表于 2017-6-23 03:03:33 | 显示全部楼层
感谢无私的分享!!
回复 支持 反对

使用道具 举报

发表于 2017-6-23 08:58:50 | 显示全部楼层
回复

使用道具 举报

发表于 2017-6-23 13:25:24 | 显示全部楼层
11111111111111111111111
回复 支持 反对

使用道具 举报

发表于 2017-6-23 15:24:54 | 显示全部楼层
老规矩,先回后下!!!!!!!
回复 支持 反对

使用道具 举报

发表于 2017-6-24 20:41:14 | 显示全部楼层
正则第一课
回复 支持 反对

使用道具 举报

发表于 2017-6-26 10:17:03 | 显示全部楼层
则表达式匹配(…, …, 是否_不区分大小写,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-4-18 23:33 , Processed in 0.044613 second(s), 22 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表