我有这种字符串:
"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/