我试图在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]+
Demo on regex101
请注意,由于regex101在行尾没有看到
\r
字符,因此我必须用\r\n
替换[\r\n]+
才能使其正常工作。无论哪种都可以在您的环境中工作。关于.net - .NET Regex预见自定义行继续,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57745771/