
标题: [问题求助] PowerShell删除正则替换多行后留下的空行 [打印本页]
作者: 小白龙 时间: 2022-11-23 10:31 标题: PowerShell删除正则替换多行后留下的空行
下面的代码把下面的几行通过替换的方式删除了, 但是却留下了一个空行, 如何在替换的同时删除空行?
#if A
part1
part1
#endif- $s = @'
- public static void Main(string[] args)
- {
- #if A
- part1
- part1
- #endif
-
- part
- part
- }
- '@
- $s -replace "#if.*(?s).*?#endif"
复制代码
作者: pd1 时间: 2022-11-23 13:04
$s -replace "#if[\s\S]*?#endif`n"
$s -replace "#if[\s\S]*?#endif`n`n" 本来的换行去掉的话就再加一个
作者: 小白龙 时间: 2022-11-23 13:44
本帖最后由 小白龙 于 2022-11-23 14:01 编辑
回复 2# pd1
多谢大佬 ,
还有一个问题想请教, 下面的s变量的最后有两个空行, 我想只删除最后那个空行, 留下一个空行, 不想用转成数组的方法, 还有别的简单的方法吗
就是不管最后多少空行, 只删最后一个空行复制代码
作者: pd1 时间: 2022-11-23 14:42
回复 3# 小白龙
$s -replace "`n(?![`n\S])"
这样试试看
作者: 小白龙 时间: 2022-11-23 15:45
回复 4# pd1
大佬666, 能解释一下吗?
作者: pd1 时间: 2022-11-23 17:16
回复 5# 小白龙

可以看一下正则表达式。
(?!exp) 匹配后面跟的不是exp的位置
你的这个最后一个换行 就是后面不接换行(`n)也不接非空字符(\S)
https://www.jb51.net/tools/zhengze.html#lookaround
教程可以看看这个
作者: 小白龙 时间: 2022-11-23 19:10
回复 6# pd1
多谢
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |