找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3304|回复: 2

[求助] 關於Regex的問題請教大家

2

主题

5

帖子

5

积分

贫民

积分
5
RexLin 发表于 2020-4-17 13:50:44 | 显示全部楼层 |阅读模式
在這裡向各位先進請教 我有一個正則表達式 自己用各種數據去丟 還是看不出他的規則 想請教是否有人可以為我解釋每個區段表達的意思
表達是如下:
re.findall(r'(\d)(\d)\1',p)
re.findall(r'(\d)(\d\d)\1',p)
re.findall(r'(\d)(\d\d\d)\1',p)
re.findall(r'(\d)(\d\d\d\d)\1',p)


另外想請教如果我想由一串數字中過濾出某個長度的連續且相同數字 該如何用正則表達式去表示?

感謝大家
回复

使用道具 举报

0

主题

10

帖子

10

积分

贫民

积分
10
rrrr336 发表于 2020-4-20 20:20:08 | 显示全部楼层
本帖最后由 rrrr336 于 2020-4-20 20:22 编辑

\d 的意思是任意一位数字, \1的意思是与第一个括号内匹配的数字相同。
举例来说: ‘(\d)(\d\d)\1’ 匹配    3453, 因为 (3)(45)3     最后一个3与第一个括号里的3一样,所以匹配成功
其他类似

一串数字找出某个长度的连续相同数字。
如果找固定长度,比如连续5个相同的数字:    ‘(d)\1\1\1\1’    (四个\1)
如果要找任意 >=2 长度的重复相同数字:      ‘(d)\1+’
回复 支持 1 反对 0

使用道具 举报

2

主题

5

帖子

5

积分

贫民

积分
5
RexLin  楼主| 发表于 2020-5-6 09:16:25 | 显示全部楼层
rrrr336 发表于 2020-4-20 20:20
\d 的意思是任意一位数字, \1的意思是与第一个括号内匹配的数字相同。
举例来说: ‘(\d)(\d\d)\1’ 匹配   ...

您好
首先很抱歉這麼晚回復您的答案 因為最近比較少上這個網站 真的抱歉 再者非常謝謝您提供的方法 我想了好久呢 經過您的提點 獲益很多
祝 平安順心
Rex
回复 支持 反对

使用道具 举报

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

本版积分规则

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