2013-09-27 47 views
1

我想从以下方法得到为什么<[^>] *>不工作的正则表达式

<[email protected]> 

asdasdasdasdasdadasdsad<[email protected]>asdasdasdasdasd 

private String extractInvalidEmailAddress(String message) { 
    Pattern pattern = Pattern.compile("<[^>]*>"); 
    Matcher matcher = pattern.matcher(message); 
    matcher.find(); 
    message = matcher.group(); 

    return message; 
} 

但是,所有我得到是null!我需要做些什么来获得[email protected]

+4

它应该肯定工作正常。你能展示你如何调用方法,并使用返回值吗? –

+0

因为这是一个笑脸。 –

+0

System.out.println(extractTicketEventId(extractInvalidEmailAddress(“asdasdasdasdasdadasdsad <[email protected]> asdasdasdasdasd”))); – Ikthiander

回答

0

试试这个:

Pattern pattern = Pattern.compile("<.*?>"); 
+0

即使这不是工作的人,最近怎么样?它在正则表达式测试器中运行良好... – Ikthiander

2

它应该有工作。你可以试试这个1个衬垫方法,做同样的工作,为您的较长的代码:

private String extractInvalidEmailAddress(String message) { 
    return message.replaceAll("^.*?(<[^>]*>).*$", "$1"); 
} 
+0

它可能是一行,但它的可读性差得多。 – Dukeling

+0

使您的代码1行不一定是件好事:可读性与功能性 –

0

正如其他人所说,这种方法是正确的。您似乎将一个空值传递给此方法。我将设置一个调试点来了解您的应用程序中发生了什么。

相关问题