DOBON.NET DOBON.NETプログラミング掲示板過去ログ

文字列の置換を行う方法

環境/言語:[VB.NET]
分類:[.NET]

Replace関数を使用して文字列の置換を行っています。
そこで置換しようとするとエラーになる文字列があり困っています。
よろしければどなたかご教授下さい。

内容は正規表現言語を含む文字列を置換したいのです。
「*,\,[,],(,)...etc」
このような文字列の置換を行うとエラーになります。
Ex)
sStr="123*456"
sStr=Replace(sStr, "*", "X")
■No5407に返信(ウニャさんの記事)
> Replace関数を使用して文字列の置換を行っています。
> そこで置換しようとするとエラーになる文字列があり困っています。
> よろしければどなたかご教授下さい。
>
> 内容は正規表現言語を含む文字列を置換したいのです。
> 「*,\,[,],(,)...etc」
> このような文字列の置換を行うとエラーになります。
> Ex)
> sStr="123*456"
> sStr=Replace(sStr, "*", "X")

このようにしてください。
sStr = sStr.Replace("*", "X")
> このようにしてください。
> sStr = sStr.Replace("*", "X")

ぺがらぼさんできました〜。
とっても感謝です。
ありがとうございました。
解決済み!
きいぼーです。

ウニャ さん
ぺがらぼ さん。

すみません、レスではないですが。。。
私の環境(VB.NET 2002)ですが、
Dim sStr As String = "123*456"
sStr = Replace(sStr, "*", "Z")

でもエラーになりませんでした。
何か他に原因があるのでしょうか。。。

.Netの作法的には、
ぺがらぼさんが書かれた方法がいいのでしょうけど。
(私も通常ぺがらぼさんの書かれた記述を行ってます。)
2004/08/06(Fri) 17:40:45 編集(投稿者)

■No5416に返信(きいぼーさんの記事)
> きいぼーです。
>
> ウニャ さん
> ぺがらぼ さん。
>
> すみません、レスではないですが。。。
> 私の環境(VB.NET 2002)ですが、
> Dim sStr As String = "123*456"
> sStr = Replace(sStr, "*", "Z")
>
> でもエラーになりませんでした。
> 何か他に原因があるのでしょうか。。。
>
> .Netの作法的には、
> ぺがらぼさんが書かれた方法がいいのでしょうけど。
> (私も通常ぺがらぼさんの書かれた記述を行ってます。)

ふむ、確かにできますねぇ…VS.NET 2003でも問題無です。
名前空間「Microsoft.VisualBasic」が無いとReplace自体にエラーがでますが、
結果としてエラーが起こるのは考えにくいですねぇ…
私もできるだけVB方言を使わないようにしていますので、困る事は無いのですが、なんでだろ?
ttp://santamartadotnet.hp.infoseek.co.jp/documents/csharp/regularexpressions.html
↑この方法でやっていました(汗)
名前空間:System.Text.RegularExpressions
を追加して
Ex)
Dim sStr As String = "123*456"
sStr = Regex.Replace(sStr, "*", "Z")
正確にはこのような記述です。
この方法だとエラーになります。
Replaceでもいろんな方法があるのですね^^;
説明不足でした。ごめんなさい;_;
■No5428に返信(ウニャさんの記事)
> 名前空間:System.Text.RegularExpressions
> を追加して
> Ex)
> Dim sStr As String = "123*456"
> sStr = Regex.Replace(sStr, "*", "Z")
この方法で置換されるのでしたら
sStr = Regex.Replace(sStr, "\*", "Z")
とすれば、
sStr の内容が「123Z456」
となります。

DOBON.NET | プログラミング道 | プログラミング掲示板