Closed shikazuki closed 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()が適切かと思います。
matcher.matches()
matcher.replacheAll()
matcher.find()
または、CsvRegexReplaceはCsvRegexReplaceFirstとして、CsvRegexReplaceAllとして作成したほうが良いでしょうか?
部分一致と全体一致の切り替えを、アノテーションの属性 @CsvRegexReplace(partialMatched) で指定するよう修正。
@CsvRegexReplace(partialMatched)
概要
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として作成したほうが良いでしょうか?