[PowerShell]長音記号と踊り字を含む文字列の比較演算について - PowerShell Scripting Weblog

2010/09/05

PowerShellの-eq演算子を使って文字列の比較をしていたとき、長音記号(ー)と踊り字(ヽ,ヾ,ゝ,ゞ,々)を含む場合に特異な挙動を示したので、参考までに書いておきます。

長音記号と踊り字単独、もしくはこれらの文字から始まる文字列(”ーあああ”など)に関しては、その長音記号と踊り字はすべて同じ文字であるとみなされます。

たとえば

PS> "々" -eq "ー"
True
PS> "ゞあああ" -eq "ヽあああ"
True

-ceq(大文字小文字を区別する-eq)でも同様です。

なお、これらの文字の前に長音記号と踊り字以外の文字がある場合は、別の文字列とみなされます。

PS> "態々" -eq "態ー"
False

これらの文字を含む文字列を比較する場合は十分気を付けてください。たとえば"々"と"ー"は常に別の文字と解釈させたい場合は、

PS> [string]::op_Equality("々","ー")
False

のようにop_Equalityメソッドを使うとよいでしょう。このようにすると.NETのSystem.Stringクラス標準の比較演算を行います。

元記事:http://blogs.wankuma.com/mutaguchi/archive/2010/09/05/192771.aspx

トラックバック

トラックバックはまだありません

トラックバックPing:


コメント

コメントはまだありません


コメントをどうぞ

名前 (省略可) :
E-mail or URL (省略可) :


前の記事へ | 次の記事へ

Copyright © 2005-2016 Daisuke Mutaguchi All rights reserved

mailto: mutaguchi at roy.hi-ho.ne.jp

Awards

Books

Twitter