はじめに
文字列操作って案外大変だったりしますよね。
特に正規表現を使って行うようなバリデーションなどは条件によっては少し考えてしまうことも多いのではないでしょうか。
今回はバリデーションでありがちな文字列の中の特殊文字の有無を判定する方法をまとめておこうと思います。
文中の特殊文字の判定方法
文中の特殊文字の有無を判定するには、以下により実現可能です。
main.kt
fun hasIncludeEmoji(str: String) {
val regex = Regex("\\p{So}")
return regex.containsMatchIn(str)
}
val value1 = hasIncludeEmoji("あいうえお😊") // true
val value2 = hasIncludeEmoji("あいうえお") // false
以上になります。
今回はUnicodeのSymbolOtherカテゴリに属するものを判定する形になっていますが、SymbolOtherカテゴリには様々な文字ブロックが存在するので、バリデーションによっては特定のブロックのみに絞るなどの対応をしても良いかもしれませんね。
さいごに
正規表現も複雑な領域ではありますがわかると中々面白いですよね。
実験的にさまざまなパターンの検証をしたくなります。