.net - .NET 正则表达式前瞻自定义行延续
问题描述
我正在尝试在 powershell 中逐行解析文件,然后根据该行的文本按字母顺序对其进行排序。唯一需要注意的是,以“...”开头的行应被视为前一行的延续。
示例输入:
Lorem ipsum dolor. sit amet
ne his posse convenire corrumpit
meliore suavitate ex mel
...Affert quidam docendi vix ex
...in adhuc dolore his
Fabulas scriptorem ex ius
...Nam ad vero ferri placerat
Lorem homero aperiam qui ne
...Qui esse altera
...recusabo no
..eu eros mediocrem
mediocritatem mel. Novum fabulas ei sed.
预期输出:
Fabulas scriptorem ex ius
...Nam ad vero ferri placerat
Lorem homero aperiam qui ne
...Qui esse altera
...recusabo no
...eu eros mediocrem
Lorem ipsum dolor. sit amet
mediocritatem mel. Novum fabulas ei sed.
meliore suavitate ex mel
...Affert quidam docendi vix ex
...in adhuc dolore his
ne his posse convenire corrumpit
我可以使用此正则表达式获得第一行继续,但无法识别第二、第三、...第 n 行继续...
.*(\r\n\.\.\.)?.*\r\n
任何人都可以帮助我适应正则表达式来解决这个问题?
解决方案
而不是使\r\n\.\.\.
可选,您需要使整个延续(即可\r\n\.\.\..*
选(但可能不止一次出现)。您可以通过修改正则表达式来做到这一点:
.*(?:[\r\n]+\.\.\..*)*[\r\n]+
请注意,由于 regex101 在行尾看不到\r
字符,因此我必须替换\r\n
为[\r\n]+
以使其在那里工作。两者都应该在您的环境中工作。
推荐阅读
- python - 创建与现有数据集具有相似特征的时间序列数据集
- html - 将引导文本粘贴到左侧
- javascript - 未捕获的错误:无效的挂钩调用。Hooks 只能在函数组件的主体内部调用 - 错误仅在 Electron 中显示
- amazon-timestream - 您如何字符串操作来自时间流的返回结果?
- javascript - Reactjs onClick
- reactjs - 如何播放从烧瓶 send_file 发送的音频文件?
- algorithm - 难以思考分而治之的方法
- c - gem5 系统调用查看陷阱指令
- mysql - 损坏的 mysqld 包阻止在 ubuntu 中进行任何其他安装
- sql - 替换为空或存在内部查询逻辑以减少存储过程执行时间