2012-01-20 47 views
-1

次の行のテキストを切り捨てる必要があります。 34文字に切り詰める唯一のテキストは、私が太字にした部分です。説明内の文字(太字)は、下に置かれている可能性があります(その場合はそのままのままにしてください)か、34文字を超えている可能性があります。Powershell - 文字列内の文字を切り捨てます

行は '文字で終わらなければなりません。

IMD + F ++ ::: BE-ライトフルーツYOG VLF4x(6x120g)

私はいくつかのコードで親しまが、その後少し引っかかって、今、私の脳が痛いました - 私はどこか想像世界は一日早く、人々は新鮮な心を持っています!

+0

、あなたの実際のコードを表示することができますか? – JNK

+0

34最初か最後か?あなたが大胆にしていることは32です...あなたの質問は私には意味がありません。 –

+0

文字列のどの部分が切り詰めの対象になるのか、どのように知っていますか?接頭辞は常に同じですか? (例:「IMD + F ++ :::」)、それともコロンの文字列ですか? – zdan

答えて

0

あなたは

$string1="IMD+F++:::Be-Light Fruit Yog VLF4x(6x120g)'" 
$string2 = $string1 -replace '(.*:+)(.*)','$2' 
$res = if ($string2.length -gt 34) {$string2.Substring($($string2.length-34))}else{$string2} 
0

を試すことができます以下は:::秒の列の後に文字列を調べて、それが切り捨て必要があるかどうかを決定します。

$str = "IMD+F++:::Be-Light Fruit Yog VLF4x(6x120g)'" 
$prefix = $str -replace ":::.*",":::" 
$trunc = $str -replace ".*:::","" 
if ($trunc.length -gt 34) 
{ 
    $trunc = $trunc.Substring(0,33) + "'" 
} 
Write-Host "$prefix$trunc" 
0
$string -replace "(.*:::)([^']{1,33}).+",$('$1$2' + "'") 
関連する問題