2012-03-22 5 views
2

間違ったシンボルを置換「 - 」正規表現は、私はダッシュ文字と私の文字列の文字と数字を除いて、間違ったシンボルを交換する必要がC#

var myString = "this=is+/* [email protected]# string^&*("; 

は私が

Regex.Replace(myString, "[^0-9a-zA-Z]+", "-"); 

を使用して、結果としてそれがこの」です-is ----間違っ----文字列----」

が、私は必要 "これは、ある-間違った文字列"

私は何を変更する必要がありますn私のRegEx。ありがとう!

+1

再生できません。 Expressoは正しい出力を返します。 'Replace'を実行する前に別のことをしましたか? – Shimrod

+0

エクスプレッションで試してみました。 {this-is-wrong-string-}が出力として得られます。これはあなたの正規表現では正しいと思われます。 – Gishu

+0

私はあなたのサンプルコードを試して、結果はあなたが1つのダッシュで必要なものです。 –

答えて

4

再現することができません:

using System; 
using System.Text.RegularExpressions; 

class Test 
{ 
    static void Main() 
    { 
     var input = "this=is+/* [email protected]# string^&*("; 
     var output = Regex.Replace(input, "[^0-9A-Za-z]+", "-"); 
     Console.WriteLine(output); 
    }     
} 

出力:this-is-wrong-string-

ですから、末尾を取り除くためにTrimEnd('-')を使用することを「 - 」が、それ以外の場合は、私には正常に見えます。あなたのコードを私の短いとはいえ完全なプログラムと比較し、何が間違っているのか分からなければ、がその問題を示すのような短くて完全なプログラムを考え出してください。

PS> "this=is+/* [email protected]# string^&*(" -replace '[^0-9a-zA-Z]+','-' 
this-is-wrong-string- 

しかし、あなたはその後-末尾削除する必要があります。

2

あなたの正規表現は、私のために動作します。

関連する問題