Groovyで文字列から「正規表現のパターン」を減算してみるとどうなるか?

2019-05-08Groovy

「Groovy In Action」読書会in関西で勉強になったことの一つ。

文字列から正規表現パターンを減算したらどうなるかという話になった。

def text = "hellohello" - (~/[lo]+/)
println text

結果:hehello

正規表現を加算したら、文字列から最初にマッチした箇所が除外される。これは知らなかった。もちろん replaceFirst 使ったらいいんだけど、

def text = "hellohello".replaceFirst(/[lo]+/, "")

っていうのよりもコード量少ないし、見通しがよくなるかも。記述方法の一つとしてメモ。

2019-05-08Groovy