【发布时间】:2020-10-19 23:36:38
【问题描述】:
我有 4 个不同的正则表达式模式匹配器和相应的替换字符串。在我的 java 代码中,我检查每个正则表达式并替换为值。无论如何我可以合并单个正则表达式和单个替换字符串吗?
DISC_CARD=(\\W|000)(6(?:011|5[0-9]{2})[0-9]{8})([0-9]{4}\\D)
MAST_CARD=(\\W|000)((?:5[0-9]{3}|2[2-7][0-9]{2})[0-9]{8})([0-9]{4}\\D)
VISA_CARD=(\\W|000)(4[0-9]{11})([0-9]{4}\\D)
AMEX_CARD=(\\W|000)(3[47][0-9]{9})([0-9]{4}\\D)
DISC_MASK=$1XXXXXXXXXXXX$3
MAST_MASK=$1XXXXXXXXXXXX$3
VISA_MASK=$1XXXXXXXXXXXX$3
AMEX_MASK=$1XXXXXXXXXXX$3
Java 代码:
for (int i = 0; i < regPatterns.size(); i++) {
message = regPatterns.get(i).matcher(message).replaceAll(maskPatterns[i]);
}
【问题讨论】: