LoginSignup
0
0

More than 1 year has passed since last update.

androidで文字の置き換え(正規表現)を使ってみて

Posted at

はじめに

今回は 正規表現というものを使ったので記事にしてみます
いろいろなやり方があるので調べた時に混乱してしまうと思ったので
実装した時に一番わかりやすいやり方をメモとして残しておきます

正規表現

val regex = Regex("""\d+""")

もしくは

val regex = """\d+""".toRegex()

とすることでRegexクラスを使うことができます

正規表現では通常通りの文字列の指定で""を使用すると
バックスラッシュなどをエスケープすることが多くなってしまうので

"""で囲うことでそのままの文字列として扱われるので、エスケープ無しで使うことができます

例のコードにある \dというのは正規表現でいう
「すべての数字」という意味で 文字列に数字(0~9)が含まれているかどうかを見ることができます
それ以外にも正規表現用のコードがあるのでまとめてあるページをお借りしました

基本的な正規表現一覧

抽出

Regexが使用された文字列を抽出します
正規表現で指定した文字があった場合に その文字を抽出するには
find、もしくはfindAllを使用します

val text = "1 aaaaa 2 bbbbb"
val regex = Regex("""\d""")

val extract = regex.find(text)
print(extract?.value)

val matches = regex.findAll(text)
matches?.forEach { it -> print("${it.value} ") }

それぞれ 結果は
findが1
findAllが 1 2
となります

置き換え

val text: String = ""
println(s.replace("", ""))

Stringの型の変数に.replaceを使うことで文字列から任意の文字を置き換えることができます
replaceの第一引数に位置き換え前の変更させたい文字を 第二引数に置き換えたい文字を入れます
"" と空文字を設定することによって第一引数に設定している文字を消すことができます

これは正規表現とは異なりますが 一番簡単な置き換えのやり方だと思います

正規表現と置き換えを合わせていきます


val text: String = """1 aaaaa, 2 bbbbb""".toRegex()
println(s.replace("""\d""", ""))

結果は aaaaa, bbbbb となります

終わりに

今回は 抽出や置き換えなど 簡単で使いやすいものを記事にしましたが、
正規表現を使うにあたって調べてみた感じ的にもっといろいろなことができそうな気がします
また、やっていて面白く感じるところが多かったので 正規表現の違う使い方も記事にできたらいいなと思いました

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0