首页 > 解决方案 > 是否有一个正则表达式可以在一组行中搜索并替换该组中的一行并将其他单词保留在那里

问题描述

例如,如果我有类似的东西:

<House \>
 windows
 walls
<\House>

我想删除让我们说墙壁我如何使用正则表达式来做到这一点,或者有比正则表达式更好的选择吗?

所以我需要它看起来像:

<House \>
 windows
<\House>

那么我将如何使用正则表达式来解决这个问题?

标签: regexfilesublimetextregex-lookaroundsregex-group

解决方案


(?s)(?<=<Building \/>).*(?=<\/Building>)将仅捕获两个建筑标签之间的内容。

(?s)允许.匹配换行符

(?<=<Building \/>)意味着您的内容应该遵循一个文本匹配块<Building />

.*是你的内容

(?=<\/Building>)只是意味着您的内容应该跟随</Building>

演示

如果你想修剪所有丑陋的空白,你总是可以使用这个模式 ( (?s)(?<=<Building \/>)\s*(.*)\s*?(?=<\/Building>))并参考捕获组 1。


推荐阅读