我有一个正则表达式: r'((\+91|0)?\s?\d{10})'
我正在尝试匹配诸如+91 1234567890, 1234567790, 之类的数字01234567890。
这些数字不应该匹配:1234568901112因为它不是以 +91 或 0 开头,或者不是只有 10 个数字:
当我尝试使用re.findall():
re.findall(r'((\+91|0)?\s?\d{10})', '+91 1234567890, 1234567790, 01234567890, 1234568901112')
[('+91 1234567890', '+91'),
(' 1234567790', ''),
(' 0123456789', ''),
(' 1234568901', '')]
您可以注意到,在第三和第四个索引中,输出不是我想要的。我在第三个索引处的预期输出是 01234568890,因为它以 0 开头,后跟 10 个字符。但它只显示前 10 个字符。另外我不希望输出在第 4 个索引中,因为它的数字不完全匹配。所以要么它匹配完整的单词/字符串,否则它是无效的。
我可以使用其他任何正则表达式吗?还是函数?我在这里做错了什么?
预期的输出是:
[('+91 1234567890','1234567790', '01234567890']
如果需要更多说明,请告诉我。
慕码人8056858
相关分类