mygreen / super-csv-annotation

'Super CSV' extention library for annotation
Apache License 2.0
31 stars 7 forks source link

CsvRegexReplaceを使用した部分一致の置換が行えない #34

Closed shikazuki closed 6 years ago

shikazuki commented 6 years ago

概要

CsvRegexReplaceのアノテーションを使用して正規表現に該当する任意の文字列を複数置換することができません。

修正案

https://github.com/mygreen/super-csv-annotation/blob/026ddd555993129231be94485533777ce52a1841/src/main/java/com/github/mygreen/supercsv/cellprocessor/conversion/RegexReplace.java#L77-L83

matcher.matches()を使用すると完全一致の比較になってしまいます。 部分一致させてmatcher.replacheAll()を呼ぶ場合、matcher.find()が適切かと思います。

または、CsvRegexReplaceはCsvRegexReplaceFirstとして、CsvRegexReplaceAllとして作成したほうが良いでしょうか?

mygreen commented 6 years ago

部分一致と全体一致の切り替えを、アノテーションの属性 @CsvRegexReplace(partialMatched) で指定するよう修正。