2011-07-05 17 views
2

私は文字列を持っています。C#ヘルプの正規表現パターン

この文字列の特定の部分を見つける必要があります。私は正規表現を使用したいと思います。

この名前で宛先部分を検索する必要があります* = UTF-8''Destination \ r \ n文字列。どちらが良いパターンでしょうか?

ありがとうございました。

答えて

3

そのおそらく、あなたが本当に唯一destination一部をしたい場合は、グループ1

を取り込むになり

name\*=(.*)$ 

=後の文字列の一部のようなものを使用することができますname*=UTF-8''destination\r\nを検索するにはもっとこの

name\*=UTF-8''(.*)$ 

*のような正規表現での特殊文字は(0またはMORのために数量詞です電子の発生箇所)ので、あなたが\*

()ブラケットはキャプチャグループ(result.Groups[1])のようなアクセス)

$を作成し、それをエスケープする必要があり、行の末尾にマッチしたアンカーです。 (あなたの\r\n

String Text_A = @"name*=UTF-8''destination 
    "; 
Regex A = new Regex(@"name\*=UTF-8''(.*)$"); 
var result = A.Match(Text_A); 
Console.WriteLine(result.Groups[1]); 

が、あなたの提供する情報は、あなたがもう少し説明し、より多くのコンテキストを与えることができ、少しまばらなのですか?

+0

感謝。この解決法は有効です。申し訳ありません私の英語はあまり良くありません。 私はImap/pop3電子メールクライアントで作業しています。添付ファイル名を得るのに少し問題がありました。アクセント付きの文字が含まれている可能性があるからです。 – user829081

1

あなたの質問のどの部分が一致する文字列であるかは完全にはわかりませんが、あなたの文字列が "name * = UTF-8"目的地\ r \ n "であると仮定すると、Regex文字列:

@"name\*=UTF-8""(?<destination>.*)\r\n" 

「宛先」欄には、すなわち、Matchオブジェクトからアクセスできるようになります:

var regex = new Regex(@"name\*=UTF-8""(?<destination>.*)\r\n"); 
var match = regex.Match(test); 
var destination = match.Groups["destination"].Value; 

文脈によっては、あなたがより一般的な定期的に一致文字列の他のいくつかの部品を交換することができるかもしれ発現コンストラクト(. \w \sなど)

乾杯、

サイモン

+0

ありがとうございます。はい、文字列の宛先部分を探したかったのです。 – user829081