【发布时间】:2014-08-28 19:00:32
【问题描述】:
我有一个包含电子邮件的字符串。在它之前和/或之后可能有额外的字符。 输入示例:
a1@b.com
a2@b.com abcd efg
x y z a3@b.com
p q a4@b.com x z
asd[x5@c.net]gh
我想删除多余的字符。
期望的输出:
a1@b.com
a2@b.com
a3@b.com
a4@b.com
x5@c.net
有效字符为 a-zA-Z0-9._ 因此,在电子邮件之前和/或之后可能存在无效字符。
我尝试使用此代码来识别它是否是正确的电子邮件(假设它与多余的字符用空格分隔),但我无法替换为所需的字符串(使用 s.replaceAll()):
if (s.matches("(?i).*\\s[a-zA-Z_\\.]+@[a-zA-Z_\\.]+\\.[a-zA-Z_\\.]+.*") ||
fields[2].matches("(?i).*[a-zA-Z_\\.]+@[a-zA-Z_\\.]+\\.[a-zA-Z_\\.]+\\s.*"))
【问题讨论】: