提问者:小点点

从Java的主字符串中提取子字符串[重复]


我正在尝试从主字符串中提取字符串的某个部分。例如,我有以下字符串。

abc@gmail.com收到收据,请自行保管,以备参考。

我只是想提取

abc@gmail.com

从字符串。

从我找到的解决方案来看,它使用索引的“计数”,从字符串的开头到字符串的电子邮件部分的开头,从电子邮件部分之后到字符串的结尾。但是,我认为这只有在电子邮件中的字符数是固定的情况下才有效。不幸的是,我这里的是动态的,这意味着字符串保持不变,除了电子邮件将填充用户输入的电子邮件。请告知。


共1个答案

匿名用户

假设您从这个输入字符串开始并且只想提取一个电子邮件地址,您可以考虑使用String#replace eAll作为单行选项:

String input = "A receipt is sent to abc@gmail.com. Please keep it for your own reference.";
String email = input.replaceAll(".*\\b(\\w\\S*@\\S*\\w)\\b.*", "$1");
System.out.println(email);

这打印:

abc@gmail.com