0

I need to find Characters contained in a string. anything other than A-Z(lower and upper) or numbers or () or /, those are the only characters allowed.

anything else (especially à,è,ë,Ç,ç,ï and so forth)are crucial to find and display in a label.

Basically I Stored everything from a text file to a string,using streamreader. now every character other than [a-zA-z0-9]()/,need to be displayed in a label.

the text file will look something like this:

0145 Joane 5521 Maxin
0211 ChanÉ 2145 Spur
0124 Martôn 4512 btgames,

private void button1_Click(object sender, EventArgs e)
    {

        string BodyToCheck = richTextBox1.Text;

      //This is where I need coding....
  }




    private void Form1_Load(object sender, EventArgs e)
    {

        StreamReader reader = new StreamReader("C:/Users/Quinell.Struthers/Test.txt");

        string body = reader.ReadToEnd();
        reader.Close();
        reader.Dispose();

        richTextBox1.Text = body;
    }
4

3 に答える 3

0
using System.Text.RegularExpressions;
using System.Linq;
var regex=new Regex("[^A-Za-z0-9()/]");
var toDisplay=string.Join("",regex.Matches(testString).OfType<Match>().Select(x=>x.Value).ToArray());

編集実際には、ジョーイの答えははるかに簡単になり、すべての値を取得するのではなく、置換を使用します

using System.Text.RegularExpressions;

var regex=new Regex("[A-Za-z0-9()/]");
var toDisplay=regex.Replace(testString,string.Empty);

編集:方法2の説明

最初の using は、他の using と同様に、ファイルの先頭にある必要があります。

次の行は、MSDN の正規表現オブジェクトRegex を作成します

この正規表現は、範囲内の任意の文字に一致しA-Za-zまたは、さらに追加すると、および0-9に一致します。()/

最後に、変数 toDisplay は、これらのすべての一致を空の文字列に置き換えた結果として設定されます (結果から効果的に削除されます)。testStringフィルタリングするソース文字列です。このコードはソース文字列を変更せず、toDisplay をフィルターの結果として設定するだけです。

于 2012-08-03T10:28:31.083 に答える
0

正規表現の置換を使用して、許可されている文字を削除し、ラベルで許可されていないすべての文字を表示できます。

label1.Text = Regex.Replace(textBox1.Text, "(?i)[a-z0-9()/]", "");
于 2012-08-03T10:25:42.577 に答える
0
public static string GetSpecialCharacters(string str) {
   StringBuilder sb = new StringBuilder();
   foreach (char c in str) {
      if (!((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') | || (c >= 'a' && c <= 'z') | c == '.' || c == '_')) {
         sb.Append(c);
      }
   }
   return sb.ToString();
}
于 2012-08-03T10:27:14.557 に答える