我试图交换"离开"用"对"和"对"与"左"这样:
.left {
left: 10px;
float: right;
}
会来:
.left {
right: 10px;
float: left;
}
什么样的表达式匹配"左"或"对"但不是" .left"只在括号内?
答案 0 :(得分:1)
以下方法适用于.NET或PCRE(例如PHP)。在Python中,使用\1\6\5\2\7
代替$1$6$5$2$7
进行替换。这些替换语法中的任何一个实际上都可以在PCRE / PHP中使用。
此方法依赖于条件和多个捕获组。这比TML的解决方案更复杂的原因是这种方法特别确保你的字符串具有右/左或左/右模式,即它将忽略左/左或右/右。
搜索:
(?s)(\.(?:left|right)\s*{\W+)((left)|(right))(:.*?float:\s*)((?(3)right|left))(;.*?})
替换:
$1$6$5$2$7
答案 1 :(得分:0)
确切的语法在很大程度上取决于您用于执行正则表达式的语言,但here's an example使用Python语法。
你会在那里找到的正则表达式如下:
/({[^}]*)left\s*:(.*?)}/s
替换表达式为:
\1right:\2}