首页 > 解决方案 > 从Java中的主字符串中提取子字符串

问题描述

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

A receipt is sent to abc@gmail.com. Please keep it for your own reference.

我只想提取

abc@gmail.com

从字符串。

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

标签: java

解决方案


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

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

推荐阅读