2017-12-06 5 views
1

文字列を別々の文字列に分割する方法を探しています。元の文字列の形式は次のとおりです。VBでの文字列操作(.NET)

Surname, First name (dd-mm-yyyy) (dd-mm-yyyy).doc 

ので例は、すべてのソース文字列は、この正確な形式に従ってください...

Smith, John (01-07-2017) (02-07-2027).doc 

です。

私は、ファイルの拡張子を取り除いて、2番目のかっこの内容を得るために12文字を数えて演奏してきました。だから、私は別の文字列に戻すことができますが、実際には、ソース文字列のすべての部分をそれぞれの文字列に分解し、それらを独自の変数に割り当てる必要があります。

strSurname variable will hold "Smith" 
strFirstname variable will hold "John" 
strDateofBirth variable will hold "01-07-2017" 
strExpiryDate variable will hold "02-07-2027" 

誰でもお手伝いできますか?前もって感謝します。

答えて

2

私は、文字列のメソッドを使用して、このアプローチを使用すると思います:

Dim inputPath=" Smith, John (01-07-2017) (02-07-2027).doc" 
Dim token = Path.GetFileNameWithoutExtension(inputPath.Trim()) 
Dim indexOfComma = token.IndexOf(","c) 
Dim surName = token.Remove(indexOfComma).Trim() 
Dim secondToken = token.Substring(indexOfComma).Trim(" "c, ","c) 
Dim indexOfLeftparanthesis = secondToken.IndexOf("("c) 
Dim firstName = secondToken.Remove(indexOfLeftparanthesis).Trim() 
Dim dateBlocks = secondToken.Substring(indexOfLeftparanthesis).Trim().Split() 
Dim dateofBirth = dateBlocks(0).Trim("("c,")"c) 
Dim expiryDate = dateBlocks(1).Trim("("c,")"c) 

indexOf...変数が>= 0dateBlocks.Length = 2している場合は、チェックする必要があります。

+0

姓にスペースがあると問題になることがあります。 O Doherty –

+0

@VBDidNothingWrong:そうです、そのアプローチは単純すぎるかもしれません。編集私の答え –

+0

文字列にスペースではなく、そのような名前のアポストロフィが含まれます。これはまだアポストロフィで動作するでしょうか? – getwiththeprogrammer