用groovy读取IMAP消息内容字符串
|
嗨,我正在使用我的grails应用程序,但我通过imap连接到gmail并等待收到的电子邮件。当电子邮件到达时,我需要获取其内容,并且它应该是字符串。然后,我需要将此字符串与一个正则表达式匹配以获取最有价值的数据。问题是此字符串有问题,它与我在常规的多行groovy字符串上测试过的regexp不匹配,并且一切正常。
def processMessage(def imapMessage){
if(message && message instanceof IMAPMessage){
def content = message.getContent()
println \'Content =\'+ content
m_mailContent = content
println \'m_mailContent is \' + m_mailContent
}
接着
def getType(){
def type = 0
if(utility.ParseUtil.matches(m_mailContent, WEB_SERVICE_REGEXP)){
type = 1
}else if(utility.ParseUtil.matches(m_mailContent, BNET_REGEXP)){
type = 2
}else if(utility.ParseUtil.matches(m_mailContent, QUEUED_REGEXP)){
type = 3
}
return type
}
But i almost always get type = 0
我可能需要对该字符串做一些事情。我不知道我得到什么样的琴弦。打印时,一切似乎都很好。当然,其中可能包含一些特殊字符,但是我可以将它们转义吗?
def WEB_SERVICE_REGEXP = /.*ErrorID:\\s*[A-Za-z\\d\\/\\.-]*\\n.*Time:\\s*[A-Za-z\\d\\/\\s:]*\\n.*URL:\\s*[A-Za-z\\d\\/\\.]*\\n/
我从gmail获得的字符串就是这样
ErrorID: -732861900
Time: Tue May 24 09:57:54 CEST 2011
URL: /transnet/organisation.jsp
HttpCode: 500
Error: class java.lang.SecurityException: Access denied.
User: Peter Rådlund (peraa), DHL Express (Sweden) AB
Domain: DHL Support
Stacktrace
----------------------------------------------------------------------
java.lang.SecurityException: Access denied.
at com.memnon.transnet.admin.Account.checkUpdate(Account.java:725)
at com.memnon.transnet.consignment.ConsignmentDB.updateOrganisation(ConsignmentDB.java:152)
at org.apache.jsp.transnet.organisation_jsp._jspService(organisation_jsp.java:842)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.A
我试着像这样
//ParseUtil
static def matches(String str, def regexp){
def m = str =~ regexp
m.find()
}
我希望现在已经很清楚了。
没有找到相关结果
已邀请:
3 个回复
乏摩纶誊伟
我从gmail获得的字符串就是这样
我试着像这样
我希望现在已经很清楚了。 我找到了答案。在我的正则表达式中,我搜索\“ \\ n \”作为换行符,它确实适用于我伪造的Java字符串以测试解析,但是在gmail(纯文本内容类型)的电子邮件正文中,我应该搜索\“ \\ r \\ n \“。现在可以使用了!我很开心! 感谢您的所有回复。对此,我真的非常感激。
细屠截殴些
编辑 这是我所拥有的:
然后打印
穗揣
至: