regex - 是否有一个正则表达式可以在一组行中搜索并替换该组中的一行并将其他单词保留在那里
问题描述
例如,如果我有类似的东西:
<House \>
windows
walls
<\House>
我想删除让我们说墙壁我如何使用正则表达式来做到这一点,或者有比正则表达式更好的选择吗?
所以我需要它看起来像:
<House \>
windows
<\House>
那么我将如何使用正则表达式来解决这个问题?
解决方案
(?s)(?<=<Building \/>).*(?=<\/Building>)
将仅捕获两个建筑标签之间的内容。
(?s)
允许.
匹配换行符
(?<=<Building \/>)
意味着您的内容应该遵循一个文本匹配块<Building />
.*
是你的内容
(?=<\/Building>)
只是意味着您的内容应该跟随</Building>
如果你想修剪所有丑陋的空白,你总是可以使用这个模式 ( (?s)(?<=<Building \/>)\s*(.*)\s*?(?=<\/Building>)
)并参考捕获组 1。
推荐阅读
- tensorflow - 保存 SavedModel:ValueError:至少两个变量具有相同的名称
- html - 2列文本和图像填充问题
- arrays - 在 ReactJS 中将图像数组导入为缩略图
- c# - ItemsControl 未虚拟化
- python - python3的最大整数值
- laravel-5 - Vue:发出的事件没有被拾取
- swift - 为什么 self 与 init 一起使用而不是 color
- dialogflow-es - 意图样本话语(训练短语)结构 - 哪个最好?
- angularjs - 将 ng-model 数组值与所选选项的 ng-options 对象映射
- c - 为什么在 C 中访问数组有限制?