LoginSignup
1
0

More than 3 years have passed since last update.

android:id以外に@+idが使われている問題を正規表現で解決する

Posted at

内容

Androidでidを定義する場所ではないのに@+idを用いている場所を正規表現でぱっと置換えちゃおうって内容です。

使う場面

Androidでxmlを用いてレイアウトを作成している時、idを定義したい場所以外でidを使う場面がよくあると思います(ConstraintLayoutで位置を指定したい時など)。
そこで@+idを指定してしまうと思わぬエラーに遭遇する可能性がある 詳しくはこちらを参照

一度書いてしまったコードを手作業で直すのはめんどくさいので正規表現で直しましょう。

使う正規表現

^(?=(.*)@\+id(.*))(?!.*android:id).*$

これで@+idを含む かつ android:idではないものを抜き出せます。
そして、

$1@id$2

で置換を行えば目的が達成できます!

たとえばこんな感じです。
スクリーンショット 2021-03-30 12.27.15.png

1
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
1
0