java - 如果为假,如何获得正则表达式检查结果?

标签 java regex email

<分区>

我有一个正则表达式来检查电子邮件格式的字符串,如下所示:

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

正确的电子邮件格式是xxx.xxx@xxx.com

但有时我的用户提示他们无法从应用程序发送电子邮件,因为电子邮件格式无效。

当使用 Matcher m = p.matcher(email); 时,如何找出哪个单词/字符与正则表达式不匹配?

最佳答案

使用

string.replaceAll

像这样:

class Test {
  public static void main(String[] args) {
    String str = "word <a href=\"word\">word</word>word word";
    str = str.replaceAll("word(?!([^<]+)?>)", "repl");
    System.out.println(str);
  }
}

那么不替换的字符串就是你想要的

关于java - 如果为假,如何获得正则表达式检查结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16644291/

相关文章:

java - 如何在启动时将数据写入文件

java - 这个 JPQL 查询有什么问题?

java - 如何使用龙格-库塔法 (RK4) 求解牛顿冷却定律

php - 正则表达式只过滤大写辅音

php - $_POST 中的字符限制

JavaScript 正则表达式 : match and identify alternative delimiters and capture surrounding text

php - 我可以不购买证书就拥有有效的邮件服务器吗?

Java速度虚拟机文件#set使用 boolean 变量

java - 发送带有附件的电子邮件 - 空多部分

php - 在 Mac OS 上禁用 PHP 邮件?