2012-01-20 113 views
-1

我必須截斷以下行文本。唯一被截斷爲34個字符的文本是我粗體的部分。說明中的字符(粗體)可能在(在這種情況下,請保持原樣)或超過34個字符。Powershell - 截斷字符串中的字符

該行必須以'字符結尾。

IMD + F + ::: 是,光果瑜珈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' + "'")