2016-06-21 5 views
1

私は、PDFからエクスポートされたXMLファイルを別のプログラムで使用可能なXMLファイルに変換することが任されています。私はこれにPowershellを使用しています。私は、行末尾をトリミングするときに、末尾にeがあれば、eも削除されていることに気付きました。それだけではないeが複数ある場合、それらはすべてトリムされます。例えば:Powershell TrimEndは後ろのeをトリミングします

$lines[i].TrimStart(">").TrimEnd("</field") 

所与の行がある場合:

>123 Sycamore</field 

結果は:

123 Sycamor 

所与の行の場合:結果は

>Agee</field 

興味深いことに、これは小文字のeの場合のみ発生します。ラインがあるのであれば、:

>LANE</field 

結果は次のとおりです。

LANE 

私はTechNetのか、ドキュメントに何かを見つけることができませんでした。 (たぶん私は間違ったことを探しています)

誰もがこれに関するアイデアはありますか?私は関数を間違って実装していますか?

答えて

5

TrimEndは、パラメータとして文字列ではなくchar[]をとります。文字列の最後から次の文字を削除します:</field PowerShellは、暗黙のうちに、その後意味するその基礎となる文字列に文字列を変換します。あなたはthis pageに到着していなかったので、もしドキュメントはまた、非常に明確にこれを指摘して、[はい、私はあなたから文字列</field>を削除することを意図した場合は、

:-)間違ったものを探していたと思います別の文字列の最後、あなたは正規表現を使用することができます

$lines[$i] -replace '^>|</field>$' 
+0

いいえ、私が探していた:あなたはこのような場合であっても、あなたのTrimStartとすることを組み合わせることができます

$s -replace '</field>$' 

を問題そのもの。私は末尾の* e *が削除されるのを見ただけなので、私はそれを探していました。私は他の文字が削除されているのを見た場合、 'char []'にもっと注意を払っていたと思います。 – jasotastic

+0

許可されると、BCLを少し知るのに役立ちます。 – Joey

関連する問題