Regex访问两个下划线之间的数字

2024-09-26 18:01:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试访问两个下划线之间的数字。例如,在下面的文本中

https://http-google-ghh.vault.com__929091__2.0
https://http-google-ghh.vault.com__929092__2.0
https://http-google-ghh.vault.com__929090__1.0
https://http-google-ghh.vault.com__929092__2.0
https://http-google-ghh.vault.com__1205024__1.0
https://http-google-ghh.vault.com__929090__1.0
https://http-google-ghh.vault.com__929092__2.0
https://http-google-ghh.vault.com__1205024__1.0

我只需要得到929091、929092等号码

我试过'_(.*)_',但我也得到了下划线。我只需要电话号码


Tags: https文本comhttpgoogle电话号码数字号码
1条回答
网友
1楼 · 发布于 2024-09-26 18:01:55

使用

re.findall(r'__([0-9]+)__', s)

regex proof

解释

                                        
  __                       '__'
                                        
  (                        group and capture to \1:
                                        
    [0-9]+                   any character of: '0' to '9' (1 or more
                             times (matching the most amount
                             possible))
                                        
  )                        end of \1
                                        
  __                       '__'

Python code

import re
s = r"""https://http-google-ghh.vault.com__929091__2.0
https://http-google-ghh.vault.com__929092__2.0
https://http-google-ghh.vault.com__929090__1.0
https://http-google-ghh.vault.com__929092__2.0
https://http-google-ghh.vault.com__1205024__1.0
https://http-google-ghh.vault.com__929090__1.0
https://http-google-ghh.vault.com__929092__2.0
https://http-google-ghh.vault.com__1205024__1.0"""
print(re.findall(r'__([0-9]+)__', s))

结果['929091', '929092', '929090', '929092', '1205024', '929090', '929092', '1205024']

相关问题 更多 >

    热门问题