Android Structural Find&替换XML

时间:2015-12-06 20:34:55

标签: android regex xml

我试图在我的资源中查找View包含background =" @ + id / play_bubble"并用自定义视图泡泡替换视图。

所以当前View看起来像这样:

<View
    android:id="@+id/obstacle3"
    android:layout_height="@dimen/obstacle_width"
    android:layout_width="@dimen/obstacle_width"
    android:background="@drawable/play_bubble"
    android:layout_alignParentLeft="true"
    android:layout_above="@id/obstacle2" />

我希望它能够找到包含特定背景的所有View对象,而不管其他属性如何。我虽然没有得到任何结果。

替换后我的最终结果应如下所示:

<Bubble
    android:id="@+id/obstacle3"
    android:layout_height="@dimen/obstacle_width"
    android:layout_width="@dimen/obstacle_width"
    android:background="@drawable/play_bubble"
    android:layout_alignParentLeft="true"
    android:layout_above="@id/obstacle2" />

非常感谢任何帮助。

编辑:

所以这就是我正在处理的界面。我根本不熟悉正则表达式,所以我不确定我是否正确输入内容,但它没有返回任何结果。 Find/Replace

1 个答案:

答案 0 :(得分:2)

由于你提到简单的查找/替换,这个正则表达式应该这样做。

查找:<View(\s+[^>]*?)background="@\+id/play_bubble"([^>]*?/>)
替换:<Bubble$1background="something_new"$2

格式化:

 <View
 (                                  # (1 start)
      \s+ 
      [^>]*? 
 )                                  # (1 end)
 background="@\+id/play_bubble"
 (                                  # (2 start)
      [^>]*? 
      />
 )                                  # (2 end)