【发布时间】:2017-01-31 22:28:12
【问题描述】:
我有一个场景,其中我有一个包含一系列数字、空格或破折号的字符串。我只想捕获长度在 14 到 16 之间的数字组。我尝试了以下各种组合,
1. [0-9](?:[- ]?){14,16}
2. [0-9]([- ]?){14,16}
3. [0-9]{15,16}|[0-9]{4}.?[0-9]{4}.?[0-9]{4}.?[0-9]{3,4}|[0-9]{4}([\\ \\-]?)[0-9]{4}\1[0-9]{4}[ ]?[-]?[ ]?[0-9]{3,4}|[0-9]{14}|[0-9]{4}([\\ ?|\\-?]?)[0-9]{4}\1[0-9]{4}\1[0-9]{4}
我的输入字符串是“我的数据包含字符串34567892345567 or 3456789234556734 or 345678923455634 and 34 5678 92345-567 or 34--567 8923---4556-734 or 34567-8923 455634”
唯一不变的是后续数字的长度为 14、15 或 16。我的输出应该捕获以下组,
1. 34567892345567
2. 3456789234556734
3. 345678923455634
4. 34 5678 92345-567
5. 34--567 8923---4556-734
6. 34567-8923 455634
请建议一个正则表达式来捕获上述组。
【问题讨论】:
标签: regex