【问题标题】:Regular expression: multiple subdomain in email address正则表达式:电子邮件地址中的多个子域
【发布时间】:2016-04-25 08:10:22
【问题描述】:

找到@ 字符之间的所有内容并不难,但问题是我需要.(dot) 字符之前的每个单词。

例如,如果电子邮件是:studentname@student.studentschool.com,那么我需要在 @ 字符之后和每个 .(点)之前添加每个单词。

student  
studentschool

到目前为止,我尝试的方法仅适用于一个域。

(?<=@)[A-Za-z]{2,40}

想不通。

【问题讨论】:

  • 向我们展示您迄今为止的尝试!
  • @ 之后用String#substring 查找内容,并在String#split 的帮助下用. 拆分。你为什么要为此使用 regExp?
  • @TAsk 所说的显然是满足这个简单要求的最佳方法,因为它比正则表达式快得多
  • 感谢您的回复。我知道这不是最好的解决方案,但我需要使用正则表达式来完成学校作业。这就是原因。

标签: java regex email extract extraction


【解决方案1】:

简单!试试这个:

([^.@]+)\.

演示: https://regex101.com/r/nM4jV7/2

解释:

获取点之前的所有内容,但不包含@。然后捕获一个组中的字符串,不包括结束点。

【讨论】:

  • 我认为每个答案都以Easy! 开头不是一个好的风格。对每个人来说可能都不容易。顺便说一句,Java 正则表达式不支持(?2)
  • 没有任何苛刻的意思。这只是为了给他们乐观。我没有贬低任何人的意思。这取决于人们如何阅读它。
  • 嗯,就正则表达式而言,java 有点烦人。其他语言正在逐步取代Java。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多