2017-04-04 80 views
1

我试图删除?字符和像素在一个唯一的列中输出文本文件。删除字符串不同部分中的唯一字符

样品字符串:300 dpi的

@{N='Dpi' ; E={$_.'Horizontal resolution'.Split(" ")[0]}}

我使用拆分成功删除dpi虽然我也想在字符串的开始删除?

"Name","Path","BaseName","Dpi","Width(Pixels)","Height(Pixels)","DpiTest" "test.png","\\directory\TCG\Labels\test.png","test","?300","?2623","?1229","?2623 pixels"

+0

如果你知道你有一个?并在您的字符串中的dpi只是使用替换... '$ string -replace'?',''' – nkasco

+0

@nkasco使用'@ {N ='TEST'; E = {$ _。Width -replace'?',''}}'仍然返回?300 – Carlos

回答

3

可以使用TrimStart()方法在一个字符串的开头删除一个或多个字符:

$_.'Horizontal resolution'.Split(" ")[0].TrimStart('?') 

不过,我会建议使用-replace操作两个操作:

$_.'Horizontal resolution' -replace '\?(\d+).*','$1' 

正则表达式匹配文字,1个或多个数字d igits和任何东西,然后用数字

+0

我正在使用'@ {N ='DpiTest'; E = {$ _。'Horizo​​ntal resolution'-replace'\?(\ d +)。*','$ 1'}}'但它仍然会返回?300 dpi – Carlos

+0

您确定'Horizo​​ntal resolution'属性正好是'?300 dpi'? –

+0

是的,我在描述中添加了文本文件的第一行(输出) – Carlos

0

替换它只是做:

$_.'Horizontal resolution'.Split(" ")[0].Replace('?', '')