簡體   English   中英

Groovy字符流模式匹配

[英]Groovy char stream pattern matching

我有以下代碼,我想從reader流中刪除所有Command ran successfully.Command ran successfully.實例Command ran successfully. 請幫我建議任何解決方案

String ostream="license_all (47286) Command ran successfully. License a Command ran     successfully."
Reader reader = new StringReader(ostream)
for(c in reader)
{
print(c)
}

如果只希望Command ran successfully.確切形式Command ran successfully. ,那么您可以執行以下操作:

reader.eachLine{ c ->
    println c.replaceAll('Command ran successfully.', '')
}

但是,如果您想變得更靈活,並在不考慮空格和大小寫的情況下更換它,請使用以下命令:

reader.eachLine{ c ->
    println c.replaceAll(/(?i)command\s+ran\s+successfully\s*\./, '')
}

請注意,在這兩種情況下,由於我們都在每一上循環,因此在換行符中重新添加( println vs print )可能很重要。 同樣,由於循環遍歷每一行,因此如果在多行上發生拆分,則不會替換該字符串。

這是一個完整的示例 ,您可以在Groovy Web Console上運行和修改 for...in鏈接到原始的 )。

暫無
暫無

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

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