【发布时间】:2020-07-29 17:20:12
【问题描述】:
我是 RegEx 的新手。我正在尝试去除字符串中数字之间的所有空格和特殊字符。请注意,该字符串可能包含其他带有数字的字符。 例如取这个字符串,
String s1 = "This is Sample AmericanExp Card Number 3400 1000 2000 009";
我正在尝试的是:-
String s1 = "This is Sample AmericanExp Card Number 3400 1000 2000 009";
String regExp = "[^\\w]+";
String replacement = "";
String changed= s1.replaceAll(regExp, replacement);
System..out.println("changed->"+content);
它的输出为 ThisisSampleAmericanExpCardNumber340000000000009, 所需的输出是“This is Sample AmericanExp Card Number 340010002000009”。 感谢帮助,请告诉我它背后的概念。
编辑:- 现在我要屏蔽卡号及其引脚(PCI),所以我有这个公式
^((4\\d{3})|(5[1-5]\\d{2})|(6011))-?\\d{4}-?\\d{4}-?\\d{4}|3[4,7]\\d{13}$
检查某些类型的信用卡。我正在修改它以检查其 PIN 和 CVV。(也匹配 4 位和 6 位数字) 示例字符串 = "示例 AmericanExp 卡号 3400 1000 2000 009 且 PIN 为 1234 ,CVV = 654321"
我将公式修改为:
^((4\\d{3})|(5[1-5]\\d{2})|(6011))-?\\d{4}-?\\d{4}-?\\d{4}|3[47]\\d{13}$|^[0-9]{4}$|^[0-9]{6}$
这没有给我正确的输出(也匹配 4 位和 6 位数字)。
【问题讨论】:
-
嘿!必须是正则表达式吗?
-
不幸的是,但是有没有其他方法?
-
您的编辑似乎与原始问题无关。此外,regex you posted 与您的示例字符串不匹配
-
我认为您的编辑是一个新问题,请考虑发布一个新问题,并提供更多详细信息,因为您写的内容不清楚。
标签: java regex replaceall