TC官方合作论坛

 找回密码
 立即注册
查看: 13705|回复: 54

[其他] 【字符串类】正则表达式第二课。圆括号 方括号 转义字符

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

马上加入TC

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

x
本帖最后由 剑仙十号 于 2022-12-15 05:03 编辑

正则表达式第二课。圆括号 方括号 转义字符

() 用来标记一个整体,
或者 用来标记一个子表达式。

第一讲:表示一个整体的()。
var 表达式1 = "..qqqq?.."
var 表达式2 = "..(qqqq)?.."

游客,如果您要查看本帖隐藏内容请回复


=======================================================
表示一个子表达式的()。
var 表达式 = "..(qqqq).."
主表达式是:"..(qqqq).."
子表达式是:(qqqq)

子表达式,拥有其独立函数:
正则子表达式匹配()
正则子表达式替换()

var text = "aaqqqqbb"
var 表达式 = "..(qqqq).."
var arr=正则表达式匹配(text,表达式,真,真)
var n = 数组大小(arr)
if(n > 0)
for(var j = 0;  j < n;  j++)
  traceprint(arr[j])
end
end
//============================
var arr子=正则子表达式匹配(text,表达式,真,真)
var n2 = 数组大小(arr子)
if(n2 > 0)
for(var j = 0;  j < n2;  j++)
  traceprint(arr子[j])
end
end
对比看出:同一个表达式,正则子表达式函数,只匹配子表达式的内容,替换子表达式的内容。

=======================================================
第二节:表示一个集合的[ ]

在“[ ]”内输入一个范围,就可以匹配范围内的单个字符。 一个集合,每次只匹配一个字符。
例子:“[0-9]”可以匹配所有的单个数字,我们就可以用“[0-9]”匹配“a1b2c3”中的“1”、“2”和“3”。
在“[ ]”内, ^ 表示取反。
在“[ ]”内,除了 空格 \ ^ [ ]这四样带有特殊意义,其它元字符都表示原义。
例子:“[^0-9]” 匹配单个 不是数字的字符,也就是说它可以匹配“a1b2c3”中的“a”、“b”和“c”。
“[a-z]” 匹配单个小写字母,
“[A-Z]” 匹配单个大写字母。
如图:b17
“[a-z]” 用来匹配 单个小写字母的,为什么大写字母也匹配?
.
第一课讲过:
var arr=正则表达式匹配(…, …, 是否_不区分大小写, 是否全局, 是否_不用Unicode码, 是否多行)
.
参数3,默认为假,默认区分大小写。
如果设置为真,不区分大小写。
.
“[a-z]”在无视大小写的情况下,等价于“[A-Z]”,所以我们可以用“[a-z]”,匹配到大写字母。
例子:
var text = "abcdABCD"
var 表达式 = "abcd"
var arr=正则表达式匹配(text,表达式,真,真)
if(数组大小(arr) > 0)
for(var j = 0;  j < 数组大小(arr);  j++)
  traceprint(arr[j])
end
end
//调试结果:"abcd"  第11行。
//调试结果:"ABCD"  第11行。
参数3:是否_不区分大小写,
设置为真,则不理会表达式的。只要表达式带有a,大A,小a,都匹配过来。
设置为假,则按表达式的。表达式是大"A",仅匹配大A。表达式是小"a",仅匹配小a。


用 [\\x{4e00}-\\x{9fa5}],匹配单个中文。
\\x 是什么意思?
在Delphi中,十六进制用 $ 打头。
在C++中,十六进制用 0x打头。
在PHP中,十六进制用 x打头。
tc的\\x,就是PHP的\x
  
=======================================================
第三节:转义字符\ (也可写成 / )
在PHP中,\将一个字符标记为特殊字符、或原义字符、或向后引用、或八进制转义符。

例如:在PHP中,
‘n’ 匹配字母 "n"。
’\n’ 匹配 换行符。
‘\\’ 匹配 "\"。
‘\(’ 则匹配 "("。

tc使用PHP正则表达式。
tc收集到的字符串,要提交到PHP正则库来处理。
tc编辑器,有自己的转义字符。而PHP正则,也有自己的转义字符。
这样在带\的地方,必须多加一个\\。

怎样验证,tc提交的正则字符串是否正确?
游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

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

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

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

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

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

使用道具 举报

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

使用道具 举报

发表于 2017-6-23 09:00:13 | 显示全部楼层
回复

使用道具 举报

发表于 2017-6-23 15:25:49 | 显示全部楼层
有没搞错这还要隐藏啊!!!!
回复 支持 反对

使用道具 举报

发表于 2017-6-26 10:23:20 | 显示全部楼层
reateObject("VBScript
回复 支持 反对

使用道具 举报

发表于 2017-6-26 21:50:03 | 显示全部楼层
666666666666666666666666666666666666666
回复 支持 反对

使用道具 举报

发表于 2017-9-4 01:58:47 | 显示全部楼层
学习
回复

使用道具 举报

发表于 2017-9-20 02:14:06 | 显示全部楼层
学习到了,真的很强啊
回复 支持 反对

使用道具 举报

发表于 2017-9-22 17:53:51 | 显示全部楼层
看看
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-3-19 23:42 , Processed in 0.044229 second(s), 22 queries .

Powered by 海安简单软件服务部

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

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