当前位置: 首页 > 知识库问答 >
问题:

使用regex从电子邮件中提取姓名

黎承颜
2023-03-14

我在试着从他的电子邮件里得到一个用户名。我知道有一些简单的方法可以实现这一点,但它让我怀疑我是否可以只使用Regex来实现这一点。

让我们假设用户输入以下电子邮件:user.sure_name123@mail.co

从该字符串中,我想提取:user sure name

([a-zA-Z]+)

共有1个答案

沈俊明
2023-03-14

到目前为止提出的答案似乎没有考虑到您将两个想法结合到一个Regex中的意图。当然,使用两个更简单。然而,它可以通过使用匹配器组和只从我们感兴趣的组中收集数据来完成。

Java 8版本:

public static void main(String[] args) {
    Pattern p = Pattern.compile("([a-zA-Z]+)[^a-zA-Z@]*(@.*)?");
    String input="user.sure_name123@mail.co";
    System.out.println(MatcherStream.results(p, input)
            .map(result -> result.group(1))
            .collect(Collectors.joining(" ")));
    // MatcherStream implementation http://stackoverflow.com/a/42462014/7098259
}

Java9版本:

public static void main(String[] args) {
    System.out.println(Pattern.compile("([a-zA-Z]+)[^a-zA-Z@]*(@.*)?")
            .matcher("user.sure_name123@mail.co").results()
            .map(result -> result.group(1))
            .collect(Collectors.joining(" ")));
}
public static void main(String[] args) {
    String input = "user.sure_name123@mail.co";
    System.out.println(input.replaceAll("((@.*)|[^a-zA-Z])+", " ").trim());
}
 类似资料:
  • 问题内容: 我正在尝试从现有评论字段中提取电子邮件地址,并将其放入自己的列中。该字符串可能是这样的:“这是示例示例,电子邮件地址为someemail@domain.org”,或者从字面上看,电子邮件本身为“ someemail@domain.org”。 我认为最好的办法是找到’@’符号的索引并在两个方向上搜索,直到命中字符串的末尾或有空格为止。谁能帮我实现这一实现? 问题答案: 您可以在字符串中搜

  • 问题内容: 给定以下电子邮件地址-someone@example.com-如何使用javascript从该地址提取某人? 谢谢。 问题答案: 匹配的正则表达式 安全检查 写成一行 带替换的正则表达式 安全检查 写成一行 分割字符串 安全检查 写成一行

  • 问题内容: 我有一个非常大的.txt文件,其中散布着成千上万个电子邮件地址。它们都采用以下格式: 使Python循环遍历整个.txt文件以查找某个@domain字符串的所有实例,然后在<…>内获取地址的全部并将其添加到的最佳方法是什么?一个列表?我遇到的麻烦是不同地址的长度可变。 问题答案: 此代码以字符串形式提取电子邮件地址。逐行阅读时使用 如果您有多个电子邮件地址,请使用: 上面的正则表达式可

  • 问题内容: 我正在尝试在SQL Server 2005中创建一个函数,以检查电子邮件是否为带有正则表达式的有效格式。 这是我到目前为止的内容: 我的正则表达式做错什么了吗?还是我需要做更多的工作才能将varchar与正则表达式进行比较? -编辑- 现在,即使电子邮件格式本身正确,我输入的任何字符串都将返回0。 问题答案: 简短的答案是不,这是无法完成的。LIKE的语法与正则表达式不同(并且功能不如

  • DocuSign向签名者发送一封电子邮件,其中包含文档,如果我们没有提到任何电子邮件正文,它只会说请DocuSign文档名,我想知道我们是否可以删除发件人的详细信息,如 发件人姓名,发件人电子邮件地址, 你好收件人姓名, 请记录文档名称, 谢谢,发件人姓名 是否可以在开始时通过编程删除发件人姓名和发件人电子邮件地址,而无需编辑品牌中的资源文件

  • 我对Firebase和Swift很陌生,在查询时遇到了一些麻烦。因此,基本上我想做两件事: 查询我的用户,只找到那些在他们的名称(或电子邮件地址)中包含特定字符串的用户,并将他们添加到数组中。 获取我的所有用户并将他们添加到数组中。 正如您所看到的,我正在使用Firebase的简单登录(稍后我也想添加Facebook登录),并且我正在按用户的uid存储我的用户。 我的规则文件的一部分如下所示: 所