找回密码
 加入
搜索
查看: 770|回复: 8

[AU3基础] 被个看似简单的正则整蒙了[已解决]

[复制链接]
发表于 2022-2-11 21:28:34 | 显示全部楼层 |阅读模式
本帖最后由 z761003 于 2022-2-12 22:36 编辑

$a="-[特锐德]"
$winTocodeREGEXP1='\[*-(\D{3,5})\]'
MsgBox(0,"",StringRegExp($a,$winTocodeREGEXP1,1)[0])
用上面的正则表达式感觉明明选不到结果的呀,可结果却是 [特锐德
我式子中的 *- 不是说明了要带条小横线么,而且小横线得在 [ 之后的,可字符串中 [ 后没小横线,再一个就是 [ 为什么也会被选出来呢
我对我的式子解释如下,大家看下我哪里理解错了:
\[  意思有个 [
* 意为 [ 后有若干个不确定的字符
- 意为 有条小横线
( 我要取的是 ( 后到 ) 里的内容
\D{3,5}  三到五个非数字字符
\] 结尾是 ]


补充下,小横线如果转义下,即  '\[*\-(\D{3,5})\]'   选出的结果也是  [特锐德
发表于 2022-2-11 21:49:26 | 显示全部楼层
捕获没错的,你仔细看看你要捕获的组 (\D{3,5})
是 - 号后面开始,到 ] 结束的非数字字符,不就是  [特锐德 么?


\[  意思有个 [
* 意为 [ 后有若干个不确定的字符

这里错了,应该是有 0到很多个 [
发表于 2022-2-11 22:03:09 | 显示全部楼层
afan 发表于 2022-2-11 21:49
捕获没错的,你仔细看看你要捕获的组 (\D{3,5})
是 - 号后面开始,到 ] 结束的非数字字符,不就是  [特锐 ...

楼主的意思应该是要求[]里面必须有个-,他提供的文本是需要排除掉的,他想知道为什么现在反而匹配到了。
*前面加个点: \[.*-(\D{3,5})\]

评分

参与人数 1金钱 +10 收起 理由
z761003 + 10 很给力!

查看全部评分

 楼主| 发表于 2022-2-11 22:07:43 | 显示全部楼层
哈哈 ,楼上两位前辈都说得很正确,我后面也发现了,少了个 . 不能没点就直接来 * 谢谢前辈
 楼主| 发表于 2022-2-11 22:09:31 | 显示全部楼层
发贴的为什么不能打赏呢,总觉得问题得到热心的回答想赏点小小费之类的出去
发表于 2022-2-11 22:25:52 | 显示全部楼层
haijie1223 发表于 2022-2-11 22:03
楼主的意思应该是要求[]里面必须有个-,他提供的文本是需要排除掉的,他想知道为什么现在反而匹配到了。
...

是这样~ 我只是给他解释正则捕获的没有错,言下之意也就是你说的,如果不是想要的结果就要修改表达式。
发表于 2022-2-11 22:28:34 | 显示全部楼层
z761003 发表于 2022-2-11 22:09
发贴的为什么不能打赏呢,总觉得问题得到热心的回答想赏点小小费之类的出去

悬赏贴只能在发帖时选择~ 不过通常使用评分功能就行了,还是免费的~
 楼主| 发表于 2022-2-11 23:05:38 | 显示全部楼层
本想给两位评点分,结果一看,,,都是财主爷,不缺分,罢了,就给谢吧
发表于 2022-2-12 13:46:22 | 显示全部楼层
z761003 发表于 2022-2-11 23:05
本想给两位评点分,结果一看,,,都是财主爷,不缺分,罢了,就给谢吧

解决了就改下标题
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-3 11:52 , Processed in 0.075745 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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