文字列から特定の値を取得したいが、どこから始めればよいかわからないという状況に遭遇したことはありますか?本や教科書で分割の書き方に迷ったことはありませんか? そんな疑問を持った方は、以下の例の説明を読んでいただければある程度理解できると思います。
まずはSplit関数の使い方を紹介します。
戻り値 配列 = Split("文字列","セパレータ")
変数 strURL に strURL = " ftp://username:password@server " などの URL 値が格納されているとします。これは、IE で FTP にログインするときの URL 形式です。 、 何をするか?もちろん、解決策は多数ありますが、ここでは Split を使用した解決策のみを紹介します。まず、区切り文字を見つけます。この文字列では、ユーザー名とパスワードの間にコロンがあることがわかりました。そのため、このコロンを Split 関数の「区切り文字」として使用して文字列全体を分割し、最終的にユーザー名とパスワードを取得するという目的を達成します。コードは次のとおりです。
strURL = " ftp://ユーザー名:パスワード@サーバー"
aryReturn = Split(strURL,":")
このように文字列をコロンで分割し、分割結果をaryReturnに格納します(aryReturnは配列です)。
最終結果を見てみましょう。Split 関数は最終的に配列を返すため、主に配列内の要素を表示します。これには、いくつかの配列関連の関数が含まれます。IsArray() は、それが配列であるかどうかを判断します。は配列の下付き文字を受け取り、UBound() は配列の上付き文字を受け取ります。
Response.Write("戻り値は配列ですか:" & IsArray(aryReturn) & "<br>")
For i = LBound(aryReturn) から UBound(aryReturn)
Response.Write("戻り値配列の要素 [" & i & "]: " & Right(aryReturn(i),Len(aryReturn(i))-2) & "<br>")
上記のコードを通して、文字列が 3 つの部分、つまり「ftp」、「//username」、「 password@server 」に分割されていることがわかります
。
ユーザー名とパスワードをさらに処理する必要があるため、詳細には触れず、コードを直接指定します。
ユーザー名のコードを取得します。
strUsername = Right(aryReturn(1),Len(aryReturn(1))-2)
パスワードを取得するコード:
' パスワードを取得するために再度 Split 関数を使用しますが、今回の区切り文字は「@」です。
aryTemp = Split(aryReturn(2),"@")
strPassword = aryTemp(0)
「ちなみにサーバーは撤去できますよ」
strServer = aryTemp(1)
区切り文字には文字または文字列を使用できます。のように:
aryReturn = Split(" ftp://username:password@server,"// ")
注:
1. 一般に、Split 関数を使用する場合、値を返す変数を宣言する場合は、Redim ではなく Dim のみを使用できます。戻り値が配列ということなのでRedimを使えば良いはずですが、実際に使うとそれができません。何が起こっているのか分かりませんか?
2. Split 関数を使用して、存在しない区切り文字で文字列を分割すると、文字列全体が返され、結果は要素が 1 つだけの配列になります。
後で、文字列から特定の文字や部分を抽出したい場合でも、ルールを理解して分割を使用すれば、さまざまな効果を得ることができます。この記事が皆さんの勉強に役立つことを願って書きます。また、各界の専門家からアドバイスをいただければ幸いです。