问题描述
我只有信用卡号码的正则表达式,但我想要之后的号码。
假设我有一个字符串 - "5189410208765027|08|2024|846
"。
我希望通过正则表达式进行匹配。我得到的正则表达式只是“5189410208765027
”id - “^(?:4[0-9]{12}(?:[0-9]{3})?|[25][1-7][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$
”
谁能告诉正则表达式匹配整个字符串?
解决方法
您可以使用:
^((?:4[0-9]{12}(?:[0-9]{3})?|[25][1-7][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}))\|([0-9]+)\|([0-9]+)\|([0-9]+)$
信用卡号将在捕获组 1 中。捕获组 2、3 和 4 将具有接下来的 3 个号码。