regex - 加入5位数字组的正则表达式
问题描述
我正在尝试从字符串中提取 10 位电话号码。在某些情况下,数字在 2 位或 5 位数字后用空格分隔。如何合并这些数字以获得 10 位数字的最终计数?
mystr='(R) 98198 38466 (some Text) 9702977470'
import re
re.findall('\d+' , mystr)
关闭,但不正确:
['98198', '38466', '9702977470']
预期成绩:
['9819838466', '9702977470']
我可以编写python代码来连接'98198'和'38466',但我想知道是否可以使用正则表达式。
解决方案
您可以先删除非数字。
>>> mydigits = re.sub(r'\D', '', mystr)
>>> mydigits
'98198384669702977470'
>>> re.findall(r'.{10}', mydigits)
['9819838466', '9702977470']
推荐阅读
- bash - 如何在`su $user <中`cat <<'EOF'`
##!/bin/bash set -e backup_dir='/home/my/backup' user='my' su $user <<EOFHD cat << 'EOF' > $backup_dir/autorestartnftables.sh #!/bin/bash SERVICENAME="nftables"
- android-studio - Frames调试中的thread、main和pool有什么区别?
- java - 如何从 ArrayList 中删除对象
? - class - 从 SwiftUi 视图中通过 SpriteView GameScene 传递/共享类
- powershell - Cmdlet 不尊重 -ErrorAction 标志或在运行时正确继续
- excel - 带有按钮的重复工作表
- java - 如何在 Flutter 中更改 Java 二进制文件的文件夹
- javascript - 无法将数据保存到 MongoDB Compass
- go - 我们什么时候应该使用 `CacheLinePad` 来避免错误共享?
- regex - 使用 sed 替换 SQL 的正则表达式