replaceFirst や、replaceAll を使う時に第一引数の一致させる文字列に正規表現で使う記号などが入っていると上手く置換されない。
エスケープする必要があるが、対象の記号を精査していると大変なので以下のように記号は一括してエスケープする。
いかがでしたでしょうか
replaceFirst や、replaceAll を使う時に第一引数の一致させる文字列に正規表現で使う記号などが入っていると上手く置換されない。
エスケープする必要があるが、対象の記号を精査していると大変なので以下のように記号は一括してエスケープする。
“aabb:ccee:dfefs:efsfds:” という文字列があって、コロン(:) でsplit(“:”) すると
[aabb,ccee,dfefs,efsfds] という配列になってしまう。
区切った文字も区切った後の文字列に含めたい場合などは (?<=:) や、 (?=:) とする。
正規表現の、 (?<=:) はコロン(:)直前の所を指し、 正規表現の、 (?=:) はコロン(:)直後の所を指す。 これを利用して区切ると、コロン(:)も含めた形で区切る事が出来る。 さらに、この二つを or(|) にすると、コロン(:) 自体も文字として配列に収める事が出来る。
これの結果は、
となる。もちろんこのコロン(:) の代わりに、正規表現も使える。 コロン(:)に続いて数字が1~3回(多い方)がある場合に区切ると行った場合は、
これの結果は、
となる。