2017-12-06 7 views
-1

私はC#を使用して、ドキュメント名を持つ文字列を持っています。ここでは書式設定されたサブ文字列

string docName = "email notification 4926-0538-5751 v.11.docx" 

は、それが最初にフォーマットされた方法です。

Iからサブ文字列を取得する方法を見つけようとし
"Doc_Name Doc_Number v.version_Number.doc_extension" 

この文字列は次のようになります。

string formateddocNumber = "4826-0718-5751 v.11" 

何らかの正規表現を使用する必要があります。しかし確かではない。場合

これはdoc_numberは常にこのフォーマットである、ことができます:

1234-1234-1234 

、常にこの形式でバージョンを持っている:

私は拡張機能として正規表現のために一致させるためにdocxファイルを使用することはできません
v.some_number 

docかtxtか何かができます。

+0

あなたがちょうどそのハイフンスペースとv.digitsによって分離された3つの4桁の数字を探すことができませんか? –

+0

'docName.Split( '')' – ja72

+0

で正規表現を使わずに文字列をスペースに分割することができます。最後の "v。"を検索できます。そして17の場所に戻ってそこからそれを取る – KinSlayerUY

答えて

1

正規表現は非常に簡単です:

string docName = "email notification 4926-0538-5751 v.11.docx"; 
var regex = new Regex(@"^.+ (\d{4}-\d{4}-\d{4} .+?)\.[^.]+$"); 
var match = regex.Match(docName); 
if (match.Success) 
{ 
    Console.WriteLine(match.Groups[1].Value); 
} 
+0

ご返信ありがとうございます。私はもっ​​と近いと思う。しかし、私はこれを得ています: "通知4826-0718-5751 v.2"。ドキュメント名全体を削除するにはどうすればよいですか?また、ドキュメント名は何でも任意の数字にすることができます。 「2017年の電子メール通知の設定」4926-0538-5751 v.11.docx「 – user1747541

+0

」正確にはどの部分が必要かという疑問から完全にはっきりしませんでした。私の答えの更新を確認してください。 – CodeFuller

関連する問題