我想从一段文字中提取8位数字。数字可以在任意两个数字之间包含一个可选的连字符,并且必须以6或7开头,所以以下内容应该匹配:
71234567
6-1234567
7-123-4567
61-23-45-67
7-1-2-3-4-5-6-7
...
我希望提取数字,所以当匹配7-1-2-3-4-5-6-7时,仅返回71234567。
我尝试像这样硬编码:
[\b\D]([67]-?\d-?\d-?\d-?\d-?\d-?\d-?\d)[\b\D]
然后再手动删除连字符,但这并不起作用。
[x.replace('-', '') for x in re.findall(r'\b[67](?:-?\d){7}\b', data)]
- Wiktor Stribiżew