【发布时间】:2019-03-27 00:56:49
【问题描述】:
我有以下用例。如果字符串的一部分不包含不同的字符串,我需要一个正则表达式模式来匹配一行。这是一个例子:
<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"/>
所以我想在这里匹配android:layout_marginStart="12dp",以便我可以替换为:
android:layout_marginStart="12dp"
android:layout_marginLeft="12dp"
我已经解决了这个问题,我可以使用以下正则表达式来做到这一点:
查找:(.*)android:layout_marginStart="(.*)"
替换:$1android:layout_marginStart="$2"\n$1android:layout_marginLeft="$2"
我不能做的是有条件地匹配。如果这个 xml 对象已经包含 android:layout_marginLeft 属性,我不想匹配。
【问题讨论】:
-
虽然我知道还有另一篇帖子询问有关检查 XML 标签的问题,但stackoverflow.com/a/1733489/507313 上也有一个答案,它还说如果它是一次性的事情,那么使用正则表达式来完成这样的任务就可以了这是。
标签: regex