Java中获取出字符串中的邮箱
时间: 2024-01-28 21:04:05 浏览: 70
可以使用正则表达式来获取字符串中的邮箱,Java中可以使用Pattern和Matcher类来实现正则表达式的匹配。
以下是一个示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EmailExtractor {
public static void main(String[] args) {
String text = "这是一段包含邮箱的字符串,我的邮箱是example@example.com,你的邮箱是abc@hotmail.com,还有一个邮箱是xyz@gmail.com。";
Pattern pattern = Pattern.compile("\\b[\\w.%-]+@[-.\\w]+\\.[A-Za-z]{2,4}\\b"); // 匹配邮箱的正则表达式
Matcher matcher = pattern.matcher(text); // 在字符串中查找匹配的邮箱
while (matcher.find()) {
System.out.println(matcher.group()); // 输出匹配到的邮箱
}
}
}
```
以上代码输出:
```
example@example.com
abc@hotmail.com
xyz@gmail.com
```
正则表达式的解释如下:
- `\b`: 匹配单词边界,保证邮箱是一个单独的单词
- `[\w.%-]+`: 匹配邮箱的用户名,可以包含字母、数字、下划线、点、百分号、减号,至少一个字符
- `@`: 匹配邮箱的@符号
- `[-.\w]+`: 匹配邮箱的域名,可以包含字母、数字、下划线、点、减号,至少一个字符
- `\.`: 匹配邮箱域名中的点,需要转义
- `[A-Za-z]{2,4}`: 匹配邮箱域名的顶级域名,只允许2到4个字母。
阅读全文