开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1691|回复: 16
收起左侧

[已解决] 很简单的一个正则表达式

 关闭 [复制链接]
结帖率:93% (77/83)
发表于 2019-5-14 22:24:18 | 显示全部楼层 |阅读模式   江苏省苏州市
5精币
就如图中所示,5.+  . 不是代表任意一个字符吗,应该匹配出来的结果与 58+是一个结果啊。。
捕获.PNG
捕获2.PNG

最佳答案

查看完整内容

58+如何理解正则得意思: 那么就是匹配到5 8出现一次或者很多次 简单讲 你的原文本是 58 588 5888 那么匹配的结果就是 58 588 5888 而你原文本是 5858 58 那么它匹配的结果就是 58 58 58 为啥5858连起来却被他匹配成 58 58 分开, 因为5858不符合你提供的公式的匹配规则,公式只能匹配到58后发现后面一个数字不是8,就默认匹配结束 然后重新开始匹配下一个位置,5对了,8 对了,然后没有了,OK,出现第二个58 你提的问题,精神是 ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:100% (3/3)

签到天数: 7 天

发表于 2019-5-14 22:24:19 | 显示全部楼层   江苏省苏州市
zzx0626 发表于 2019-5-14 23:29
第一次接触正则有点摸不清头脑,我知道.是代表任意字符,那你帮我分析下 58+吧,他去匹配8出现多次的数字 ...

58+如何理解正则得意思:
那么就是匹配到5 8出现一次或者很多次
简单讲
你的原文本是
58 588 5888
那么匹配的结果就是
58
588
5888
而你原文本是
5858
58
那么它匹配的结果就是
58
58
58
为啥5858连起来却被他匹配成
58
58
分开,
因为5858不符合你提供的公式的匹配规则,公式只能匹配到58后发现后面一个数字不是8,就默认匹配结束
然后重新开始匹配下一个位置,5对了,8 对了,然后没有了,OK,出现第二个58
你提的问题,精神是好的,但是初学者多会如此
就是知道一点开始想这样不对,那样不对
其实,一句话,你发现不对了,问了,别人说不行,那你记住这么写不行,不要多问为什么,等用多,你自己都理解为啥了。

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

签到天数: 6 天

发表于 2019-5-14 22:28:07 | 显示全部楼层   广东省广州市

+匹配前一个字符一次或多次。
例如,"zo+"可以匹配"zoo",但不匹配"z"。


……

点评

前一个字符是重点~   广东省广州市   发表于 2019-5-14 22:29
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 7 天

发表于 2019-5-14 22:28:34 | 显示全部楼层   江苏省苏州市
.+的意思.这个字符出现N次
5.+也就是
58可以
585可以
5858可以
回复

使用道具 举报

结帖率:93% (77/83)
 楼主| 发表于 2019-5-14 22:58:51 | 显示全部楼层   江苏省苏州市

那我还是搞不懂 58+  和5.+ 为什么匹配出的结果不一样,  .  代表任意字符, 5.  不就= 58??

点评

!!!   广东省广州市   发表于 2019-5-14 23:00
回复

使用道具 举报

签到天数: 6 天

发表于 2019-5-14 23:01:16 | 显示全部楼层   广东省广州市

点是匹配任意字符,而8就只是匹配8~
回复

使用道具 举报

结帖率:93% (77/83)
 楼主| 发表于 2019-5-14 23:11:23 | 显示全部楼层   江苏省苏州市
冯古屋 发表于 2019-5-14 22:28
.+的意思.这个字符出现N次
5.+也就是
58可以

就如图中所示,为什么我找58+  他返回 58   58   58  而 找5.+ 返回5858    58
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 7 天

发表于 2019-5-14 23:23:34 | 显示全部楼层   江苏省苏州市
zzx0626 发表于 2019-5-14 23:11
就如图中所示,为什么我找58+  他返回 58   58   58  而 找5.+ 返回5858    58

我已经给你解释得很清楚了
.这个意思就是代替任意字符(换行符以外)
.+的意思.这个字符出现N次
也就是
一个不是换行符的字符重复N次
5.+
因为你的原文本是
58
5858
如果你还多给一些比如
5789
570
它一样匹配的
回复

使用道具 举报

结帖率:60% (3/5)
发表于 2019-5-14 23:26:50 | 显示全部楼层   北京市北京市
正则后面的只针对前一个字符生效   你的写的就是匹配 5 8+  就是匹配 后面任意个数个8     加个58.+  点 表示匹配任意字符 +表示一次或多次  
回复

使用道具 举报

结帖率:93% (77/83)
 楼主| 发表于 2019-5-14 23:29:40 | 显示全部楼层   江苏省苏州市
冯古屋 发表于 2019-5-14 23:23
我已经给你解释得很清楚了
.这个意思就是代替任意字符(换行符以外)
.+的意思.这个字符出现N次

第一次接触正则有点摸不清头脑,我知道.是代表任意字符,那你帮我分析下 58+吧,他去匹配8出现多次的数字,那为什么返回的不是 5858 和 58呢,
回复

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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