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

Is there a regex that can search in a group of lines and replace one line within that group and keep the other words there

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

<House \>
 windows
 walls
<\House>

我想移除墙,我该如何使用正则表达式做到这一点,或者有比正则表达式更好的选择吗?

所以我需要它看起来像:

<House \>
 windows
<\House>

那么我将如何使用正则表达式处理这个问题?

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

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

(?<=<Building \/>) 表示您的内容应遵循匹配 <Building />

的文本块

.*是你的内容

(?=<\/Building>) 只是意味着你的内容后面应该有 </Building>

Demo

如果你想 trim 那些丑陋的白色 space,你总是可以使用 this pattern ((?s)(?<=<Building \/>)\s*(.*)\s*?(?=<\/Building>)) 并参考捕获组 1。

怎么样:

Find: (<Building />\s+)floor(\s+</Building>)
Replace: corner