regex - 跨双换行符的正则表达式
问题描述
我有以下文本,我需要从中删除部分内容:
[Firstname LastName 21/06/2018 - 17:27]
Lorem Ipsum
[Foo Bar 25/01/2017 - 12:10]
Lorem Ipsum - First line
Lorem ipsum Second line
Lorem ipsum third line
Some other random text
我需要提取这段文本的部分内容,我几乎可以使用以下正则表达式来做到这一点:
\[(?<name>\w+? \w+?) (?<date>\d{2}\/\d{2}\/\d{4}) - (?<time>\d{2}:\d{2})\]\n*(?<note>.+)
一切正常,除了标记为 的组<note>
,它只拾取注释的第一行。如果注释中有换行符,则不会拾取换行符之后的任何内容。
如何让它匹配注释部分中的所有文本,直到正则表达式找到双换行符?
解决方案
我已经修改了你原来的正则表达式给你预期的输出。
\[(?<name>\w+? \w+?) (?<date>\d{2}\/\d{2}\/\d{4}) - (?<time>\d{2}:\d{2})\]\n*(?<note>.+\n?\n?)+
它应该匹配所有内容,直到双换行符,注意唯一的变化是在最后。
代替...
(?<note>.+)
就是现在...
(?<note>.+\n?\n?)+
编辑:更改了正则表达式,因此它将包括由一个换行符分隔的行,但不是两个。
推荐阅读
- elasticsearch - Vega-lite 热图将文本添加到变量
- azure-devops - Azure DevOps 容器作业;在“第二个”图像上运行命令行命令
- node.js - Angular 不发送仅 HTTP Cookie
- c# - C# dotnet core 多线程读/写
- python - UnicodeDecodeError:'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
- html - 单词在 HTML 中不断中断
- sql - Spark SQL - “包含”功能的替代方案
- html - vuejs:移动和显示视图中的粘性页脚
- vba - 在演示部分的开头和结尾处导入幻灯片
- r - 如何将行附加到具有不同 clumn 类型的 data.frame?