我有一个与正则表达式相关的问题,我想要排除一个字符,但我不知道如何。
这是代码:
import java.util.ArrayList;
import java.util.List;
import java.util.regex.*;
class ExtractDemo {
public static void main(String[] args) {
String input = "From foo@gmail.com Fri Jan 5 09:14:16 2016";
Pattern p = Pattern.compile("@.*?\\s");
Matcher m = p.matcher(input);
while (m.find()) {
System.out.println("Found a " + m.group() + ".");
}
}
}
输出是' @ gmail.com'但是我想删除' @'。所以输出将是' gmail.com'
我尝试过表达式:(" [^ @]。*?\ s")但它不起作用:(
提前致谢
答案 0 :(得分:2)
我想写正则表达式:
public static void main(String[] args) {
String input = "From foo@gmail.com Fri Jan 5 09:14:16 2016";
Pattern p = Pattern.compile("(?<=@)(\\w+(\\.\\w+)+)");
Matcher m = p.matcher(input);
while (m.find()) {
System.out.println("Found a " + m.group(1) + ".");
}
}
我在非捕获区域中检查@
,因此最终输出仅捕获gmail.com
但不捕获gmail..com