在groovy中使用正则表达式来替换以多个字符开头的字符串

时间:2015-08-27 14:00:59

标签: regex groovy

我将文件的内容存储在String变量String fileContents = new File('file location').text中,字符串包含多行数据,如下所示

 Sample text 
--- Some text---- 
Another Sample text
-- Some more text ------
--Again some more text
More Sample text

需要帮助...... 1.删​​除以两个或更多' - '字符(w \ o引用)开头的数据,直到行尾。 2.删除多个字符之间的文本。

因此,预期输出应该像

  

示例文本

     

另一个示例文本

     

更多示例文字

2 个答案:

答案 0 :(得分:0)

您可以使用此正则表达式进行搜索:

^\s*--+.*$

用空字符串替换。确保使用多行标记。

RegEx Demo

<强>代码:

str = str.replaceAll("(?m)^\\s*--+.*$", "");

答案 1 :(得分:0)

棘手的部分是新线。线条很容易过滤掉,但最终会出现空行。这段代码:

Sample text 

Another Sample text


More Sample text

产地:

println s.split(/\n/).findAll { !(it =~/(?m)^--.*$/) }.join('\n')

您可以做的是将String作为List处理,以便您可以删除有问题的行,然后将其转换回字符串:

Sample text 
Another Sample text
More Sample text

产地:

{{1}}