regex - groovy - 正则表达式不起作用

标签 regex groovy match

我有这种字符串:

"blabla (label 1 label 2)"
"blabla (label 1 2) blabla"

我想匹配“1”和“2”并将它们替换为“X”以获得:

"blabla (label X label X)"
"blabla (label X X) blabla"

我有这段代码,但它不能按我想要的方式工作。

def result = "blabla (label 1 label 2)"
def result = result.findAll(/.+label\s([1-9]).*/) { m -> "X" }

最佳答案

使用replaceAll而不是 findAll:

def replaced = result.replaceAll(/label(?:\s+\d+)+/) { m ->
    m.replaceAll(/\d+/, "X")
}

关于regex - groovy - 正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20841019/

相关文章:

java - 正则表达式第一个字符不匹配

jquery - 正则表达式在 jQuery 中用破折号替换空格

java正则表达式,仅当不在引号或括号中时才以逗号分隔

groovy - 我如何使用 Groovy 在 Jenkins 中创建一个新项目

dictionary - Groovy Map.get(key, default) 改变 map

javascript - 如何在 javascript 中匹配正则表达式?

r - 泛化R%in%运算符以匹配元组

正则表达式从匹配中删除模式

javascript - 为什么在 Chrome 中有效的正则表达式在 Poltergeist/PhantomJS 中不起作用?

java - Java Streams 中 Groovy 的 int.times