Groovy char流模式匹配

时间:2011-09-28 06:20:13

标签: java regex groovy

我有以下代码,来自reader流我要删除所有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)
}

1 个答案:

答案 0 :(得分:3)

如果您只想要{em>完全形式的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)。此外,由于在每一行上进行循环,如果字符串在多行上分割,则不会替换该字符串。

您可以a complete example运行和修改on the Groovy Web Console。 (Link to original one with for...in.