我想使用正则表达式替换电子邮件地址的一部分。怎么做?
例如:有一个电子邮件地址test.email+alex@gmail.com
,我想用''替换从+
到@
之前的那部分,以便最后的字符串将是test.email@gmail.com
。
我尝试使用以下代码:
str.replaceAll("[^+[a-z]]","");
\+[^@]*
解释:
\+
匹配+,其中\是转义字符[^@]*
匹配任何东西,直到到达@,其中*表示零个或多个以下是代码:
final String string = "test.email+alex@gmail.com";
final Pattern pattern = Pattern.compile("\\+[^@]*");
final Matcher matcher = pattern.matcher(string);
final String result = matcher.replaceAll("");
(?:\.|\+[^@]*)(?=.*@)
解释
(?:
非捕获组
\.
匹配一个点|
或者\+[^@]*
匹配 +
和 0 次或多次除了点以外的任何字符)
关闭组(?=.*@)
正向先行断言,断言右边有一个 @
在 Java 中
str.replaceAll("(?:\\.|\\+[^@]*)(?=.*@)","")