[英]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.