簡體   English   中英

Java多行正則表達式調試

[英]Java multi-line regular expression debugging

在Java中,以下正則表達式

To: a@b\.com.*Subject: Please verify your email address

在某種程度上找不到此文本中的匹配項:

Dez 21, 2012 10:29:58 AM com.google.appengine.api.datastore.dev.LocalDatastoreService init
INFO: Local Datastore initialized: 
    Type: High Replication
    Storage: In-memory
Dez 21, 2012 10:29:58 AM com.google.appengine.api.mail.dev.LocalMailService log
INFO: MailService.send
Dez 21, 2012 10:29:58 AM com.google.appengine.api.mail.dev.LocalMailService log
INFO:   From: 
Dez 21, 2012 10:29:58 AM com.google.appengine.api.mail.dev.LocalMailService log
INFO:   To: a@b.com
Dez 21, 2012 10:29:58 AM com.google.appengine.api.mail.dev.LocalMailService log
INFO:   Subject: Please verify your email address
Dez 21, 2012 10:29:58 AM com.google.appengine.api.mail.dev.LocalMailService log
INFO:   Body:
Dez 21, 2012 10:29:58 AM com.google.appengine.api.mail.dev.LocalMailService log
INFO:     Content-type: text/plain
Dez 21, 2012 10:29:58 AM com.google.appengine.api.mail.dev.LocalMailService log
INFO:     Data length: 4

我的Java代碼如下所示:

    Matcher matcher = Pattern.compile(regex, Pattern.MULTILINE).matcher(input);
    if (matcher.find()) {
        ...
    }

這有點奇怪,因為當我使用此工具在線測試該模式時,該模式似乎可以正常工作: http : //regexpal.com

因此,Java對模式的解釋必須有所不同。 有什么方法可以獲取Matcher錯誤消息嗎?

更新它應該找到:

To: a@b.com
Dez 21, 2012 10:29:58 AM com.google.appengine.api.mail.dev.LocalMailService log
INFO:   Subject: Please verify your email address

您將要使用Pattern.DOTALL而不是Pattern.MULTILINE

DOTALL使. 匹配換行符。 (這是您想要的)

MULTILINE使^$每行工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM