python - 删除非数字字符,包括构成 URL 的数字
问题描述
我有一个由一组数字和一个 URL 组成的字符串。我只需要除附加到 URL 之外的所有数字字符。下面是我删除所有非数字字符的代码,但它不会从 URL 中删除数字。
test = '4758 11b98https://www.website11/111'
re.sub("[^0-9]","",test)
expected result: 47581198
解决方案
原始答案
改变策略,只保留领先数字并忽略其余部分要容易得多:
import re
test = '47581198https://www.website11/111'
re.findall(r'^\d+', test)[0]
或者,如果不确定是否存在前导数字,则使用 match:
m = re.match(r'\d+', test)
if m:
m = m.group()
输出:'47581198'
问题更改后编辑
如果您确定“http://”字符串不能在您的初始编号中。
然后您需要两次通过,一次用于删除 URL,另一次用于清除号码。
test = '4758 11b98https://www.website11/1111'
re.sub('\D', '', re.sub('https?://.*', '', test))
输出:'47581198'
推荐阅读
- angular - Angular:将模板数据映射到其他演示文稿
- python - Django:作为字典的 SQL 结果
- multithreading - 在线程从未被阻塞的情况下,“线程在 STM 事务中无限期阻塞”
- python - 循环遍历 tif 堆栈并提取像素值的最快方法
- r - Shiny - 点击查看下一个情节
- maven - 我可以强制 Maven 验证下载的 jar 吗?
- python - 并排打印字母图案
- javascript - componentWillReceiveProps 中更改的状态未显示在渲染中
- javascript - Google 地图和地点 API 超出了您对此 API 的请求配额
- html - 基于 id、tag 或 class 获取所有可点击元素的 Webtool