包含 _ 的字符串缩短为第一个和最后一个字符

问题描述 投票:0回答:1

我的文件 Text.txt 包含:

sometext1 sometext2 sometext3 sometext4_sometext5_sometext6 sometext7 sometext8 sometext9_sometext10 sometext11

我只需要在 powershell 中将包含 _ 的字符串缩短为第一个和最后一个字符即可输出:

sometext1 sometext2 sometext3 s4_s5_s6 sometext7 sometext8 s9_s0 sometext11

我是 Powershell 的新手。

谢谢您的帮助。

string powershell substring
1个回答
0
投票

它的正则表达式有点冗长,但我认为它可以满足您的需要:

(?<=[^])[^\s_]+(?=[^\s_]|[^]\s)|(?<=\s[^])[^\s]+(?=[^ \s_]_)

像这样使用:

sometext1 sometext2 sometext3 sometext4_sometext5_sometext6 sometext7 sometext8 sometext9_sometext10 sometext11' -replace '(?<=_[^_])[^\s_]+(?=[^\s_]_|[^_]\s)|(?<=\s[^_])[^\s_]+(?=[^\s_]_)

这是正则表达式的解释: https://regex101.com/r/aYVoa6/1

© www.soinside.com 2019 - 2024. All rights reserved.