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

用于除去模式以外的所有字符的Java正则表达式

夏侯兴学
2023-03-14

我有一个字符串包括电子邮件。在它之前和/或之后可能有额外的字符。输入示例:

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
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.*"))

共有1个答案

公西毅
2023-03-14

您可以使用java.util.regex.pattern和java.util.regex.matcher

此代码将执行您所要求的操作:

public static void main(String[] args) {
    String[] testList = {"a1@b.com", 
            "a2@b.com abcd efg", 
            "x y z a3@b.com", 
            "p q a4@b.com x z", 
            "asd[a5@b.coom]gh"};

    Pattern EMAIL_PATTERN = Pattern.compile("[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,})");


    for(String test : testList){
        Matcher m = EMAIL_PATTERN.matcher(test);
        while (m.find()) {
             System.out.println(m.group(0));
        }
    }
}
 类似资料:
  • 我正在尝试用Java编写一个正则表达式,它从段落中删除所有非字母数字字符,但单词之间的空格除外。 如何修复此错误?

  • 问题内容: 我有两个弦 和。现在,我想对这些字符串应用一个正则表达式,以过滤掉除数字以外的所有内容,以便获得像和这样的整数。 我该怎么做? 问题答案: 您可以使用。它会考虑您所拥有的一切之外的一切。 因此,如果要过滤除y以外的所有内容。在你的情况下,你会做类似的事情 其中string是保存实际文本的变量!

  • 我对正则表达式很陌生,正在寻找一个匹配任何东西的表达式,除了所有匹配给定正则表达式的东西。我已经找到了除了特定字符串以外的任何东西的方法,但是我需要它不匹配一个正则表达式。它还必须在Java工作。 背景:我正在使用ANSI颜色的字符串。我想取一个字符串,它有一些文本,可能是用Ansi颜色代码格式化的,并删除除那些颜色代码以外的任何东西。这将给出附加到字符串上的任何字符的当前颜色格式。 格式化字符串

  • 问题内容: 我有以下代码可用于删除正则表达式字符串中的所有标点符号: 我如何更改它以允许连字符?如果您能解释您是如何做到的,那将很棒。我了解在这里,如果我错了,请纠正我,在标点符号之后加上P。 问题答案: 是-的补充-不是标点符号。所以这比赛什么,是 不是 (没有标点符号或破折号) -导致除破折号所有标点符号。 范例:http://www.rubular.com/r/JsdNM3nFJ3 如果您希

  • 我正在编写一个php类来从csv文件中提取数据。所以正则表达式需要帮助。 数据样本 正则表达式 这不应该匹配第1、2和7行,因为它在数据和字段后只有空格和制表符(空白) 这是我的regex测试程序链接https://regex101.com/r/xpG25l/1/

  • 问题内容: 我有这个作业问题,需要使用正则表达式删除字符串中的所有其他字符。 在一部分中,我必须删除索引1,3,5,…处的字符,具体操作如下: 这是我想要的打印。本质上,我一次匹配两个字符,然后替换为第一个字符。我使用组捕获来做到这一点。 问题是,我在作业的第二部分遇到麻烦,我需要删除索引0、2、4,…处的字符。 我已经完成以下工作: 此打印,但正确答案必须是。仅当输入字符串的长度为奇数时,我的正