regex - 从相同的字符对之间的文本中去除字符串(使用正则表达式或其他方式)
问题描述
我有很长的文本文件(实际上是 .srt 字幕文件) - 不幸的是,其中包含许多不相关/分散注意力的信息。
所有不相关的文本都包含在相同的 pilcrow(段落)字符对中:¶
例如,一些文本看起来像这样:
这很重要,而¶junk垃圾垃圾垃圾¶我想保留它。
显然,我想删除 ¶ 字符之间的所有内容并保留其余部分。¶ 字符本身是否被剥离或保留并不重要:如果它们被保留,只需通过随后的搜索/替换直接删除它们就很简单了——所以我只需要最简单的模式匹配。
请注意,¶ 符号是成对出现的,因此它不像删除 [不对称字符] 之间的所有内容那么简单。
我没有在任何特定平台上工作。事实上,我希望使用一个基于 Web 的工具来做到这一点。
我只需要正则表达式 - 如果有人可以提供帮助!或者,如果有比正则表达式更好的方法,我将不胜感激。
编辑:有人建议这个问题(删除字符串中分隔符之间的文本(使用正则表达式?))回答我正在寻找的内容。谢谢,但不幸的是它没有。这与在 C# 中使用它有关(我不知道),并且该问题的答案并没有准确解释如何复制我想要的。我希望它在我链接到的在线工具中工作。
更新:一个好的答案有效,但前提是不需要的文本出现在行内。我还需要它来删除不需要整行的文本:
779 00:35:52,216 --> 00:35:54,784
我已经很想他了。
780 00:36:00,291 --> 00:36:03,727
¶ 如果你需要某人 ¶
665
00:30:21,821 --> 00:30:25,589
¶ 感觉像
有时你想¶
因此,我想删除出现在 ¶ 符号之间的所有内容,无论它们在行中的哪个位置吸引,也无论是否存在换行符。
第二次更新 在接受的答案之后,它似乎并不完全有效。在此处的示例中,提供的正则表达式在第一个多行实例中不起作用。我不知道出了什么问题。我只是希望换行符(或任何其他字符)与考虑无关。该请求只是删除 ¶ 字符对之间的所有内容,无论它们出现在哪里,也不管它们之间还有什么。
最终(希望)更新
作为参考,感谢用户 MDR,我们有解决方案:(¶[\S\s]*?¶)
解决方案
由于有问题的新信息和此答案下方的评论而更新。
您引用的那个在线工具似乎可以提取文本(可能不是您想要的 - 您想删除找到的位)。也许改为使用具有查找和替换但带有正则表达式选项并查找...
(¶[\S\s]*?¶)
...并且什么都没有替换。演示:https ://regex101.com/r/4v9gXj/8
推荐阅读
- excel - 如何在excel vba的所需单元格中粘贴公式
- php - 如何将最后一位数字为 0 的浮点值输入到数据库中?
- listview - Flutter:ListView 中的动态大小的 Widget
- java - 为不同的配置文件定义具有相同方法名称的 Spring Bean
- python - 用于在文件夹层次结构中标记(科学)二进制文件的 XML
- java - 出 onResponse 结果 NULL
- go - 使用 Go 读写 Yaml 文件
- ios - SwiftUI @State 变量没有被取消初始化
- excel - 如果函数在 Excel 中返回文本而不是数字?
- android - 如何在 Android/kotlin 中使用 CLIPS 规则引擎获取输出