gpt4 book ai didi

regex - 双/三行换行符时分割字符串

转载 作者:行者123 更新时间:2023-12-03 01:13:04 26 4
gpt4 key购买 nike

我正在尝试将JavaScript转换为在双行/三行换行符之间插入“分隔线”的PowerShell。

JavaScript

html = html.replace(/\:\s*\n\s*/g, ":\n" ); //sentences ending with : is not the end of a paragraph, but the start of something new 
html = html.replace(/\n\s*\n\s*\n/g, replaceChar );
html = html.replace(/\n\s*\n\s*/g, replaceChar );

我不想插入分隔线( replaceChar),而是将其拆分为一个数组。

我已经尝试过了,但是无法管理自己做错的事情。

PowerShell

$html = $html -replace "/\:\s*\n\s*/g", ":\n"
$html = $html -split "/\n\s*\n\s*\n/g" -split "/\n\s*\n\s*/g"

例如:

$html = "Ipusm lorem – Outsourcing


ipsum lorem lorem ipsum. ipsum. lorem:

test testads fsadf dsa fsa


asdf dsa fdsa fdsa fsa .a fdsa dsa f."

成为

$html[0] = "Ipusm lorem – Outsourcing"
$html[1] = "ipsum lorem lorem ipsum. ipsum. lorem:
test testads fsadf dsa fsa"
$html[2] = "asdf dsa fdsa fdsa fsa .a fdsa dsa f."

最佳答案

如果不需要在冒号后保留换行符,我可以将冒号后的连续空格修改为一个空格,在换行符处分割结果,然后删除空白行:

$html -replace ':\s*', ': ' -split '\n' | Where-Object { $_.Trim() }

如果您还希望修剪剩余的行,请像这样修改上面的内容:
$html -replace ':\s*', ': ' -split '\n' | ForEach-Object { $_.Trim() } |
Where-Object { $_ }

根据输入和您的要求,您可能可以在冒号之后重新添加换行符,如下所示:
$html -replace ':\s*', ': ' -split '\n' |
ForEach-Object { $_.Trim() -replace ':', ":`n" } |
Where-Object { $_ }

另一个选择是将冒号后的换行符和后续空格改成单个换行符,然后将字符串拆分为2个以上的换行符:
$html -replace ':\n\s*', ":`n" -split '\n{2,}' |
ForEach-Object { $_.Trim() } |
Where-Object { $_ }

关于regex - 双/三行换行符时分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35433329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com