LOTUSSCRIPT 言語
構文
stringExpr Like patternString
要素
StringExpr
リスト内の文字をマッチングするには、文字を [ ] で囲みます。このとき、空白文字をリストの一部とする場合以外は、空白やその他の区切り文字は入れません。たとえば、[1, 2, 3, A, B, C] は、文字の 1、カンマ、空白、2、3、A、B、C を表します (重複する空白とカンマは無視されます)。一方、[123ABC] は、文字 1、2、3、A、B、C を表します (空白およびカンマはありません)。
範囲内で文字をマッチングする
範囲を指定するには、[1-5] のようにハイフンで範囲の上限と下限を区切ります。範囲は常に照合順序の昇順で指定します (Z-A ではなく A-Z)。ソート順は、Option Compare の設定によって決まります。複数の範囲を指定する場合、範囲を何かで区切る必要はありません。たとえば、[1-5A-C] は、1-5 の範囲と A-C の範囲を表します。
バイナリ比較 (Option Compare Binary) が有効なときは、国際 ANSI 文字照合順序が使用されます。これは、値 Chr(0)、Chr(1)、Chr(2)、.... の順序です。どの LotusScript のプラットフォームでも同じです。範囲を昇順で指定すると、有効なパターン文字列が生成されます。ただし、Option Compare Case ステートメントまたは Option Compare NoCase ステートメントが有効になっている場合、Lotus ソフトウェアによって照合順序は異なります。英数字の順序は国際 ANSI と同じになりますが、範囲の定義に他の文字を使用すると無効なパターン文字列になることがあります。英数字以外の文字を使用して範囲を定義するときは、スクリプト内で Option Compare Binary ステートメントで有効なパターン文字列を確実に定義するように指定します。
特殊文字をマッチングする
次の文字のいずれかとマッチングするには、それを characters リストに指定します。
次の文字のいずれかとマッチングするには、characters リストまたは範囲外のワイルドカード中の任意の位置に指定します。
戻り値
stringExpr が patternSTRING に一致すれば、結果は True です。一致しなければ、結果は False です。stringExpr か patternSTRING の一方が NULL ならば、結果は NULL です。
使用法
既定値では、大文字と小文字を区別して比較します。Option Compare ステートメントを使用して、大文字と小文字を区別するかどうかを指定できます。
クロスリファレンス
式言語の @Like 関数
式言語の @IsMember 関数
式言語の @Matches 関数
例
例 1
3 で終り 2 で始まらない、1 から 100 までの 2 桁の数字を表示します。
For x = 1 To 100 If CStr(x) Like "[!2]3" Then Print x Next x ' Output: ' 13 33 43 53 63 73 83 93
例 2
この例では、Like 演算子を [city] と [zip] フィールドの値が正しいかどうかを確かめる式に使用しています。
if doc.city(0) like "*[0-9]*" then messagebox _ "city field contains a number"
if doc.zip(0) like "*[a-z,A-Z]*" then messagebox _ "zip code field contains a character"
例 3
Like 演算子を使用して、指定された部分文字列がある文字列に含まれるかどうかテストする方法をいくつか示します。
' Make string comparison case-sensitive. Option Compare Case Dim anArray(1 To 6) As String anArray(1) = "Juan" anArray(2) = "Joan" anArray(3) = "Alejandro" anArray(4) = "Jonathan" anArray(5) = "Andrea" anArray(6) = "Jane" UB% = UBound(anArray) ' Test each name in anArray$ to see if it contains a substring ' consisting of any characters followed by uppercase J ' followed by any characters followed by lowercase n followed ' by any characters. For counter% = 1 to UB% If anArray(counter%) Like "*J*n*" Then Print anArray(counter%) & " " ; End If Next Print "" ' Output:Juan Joan Jonathan Jane ' Test each name in anArray$ to see if it contains ' a numeric character. badRec% = 0 For counter% = 1 to UB% If anArray(counter%) Like "*#*" Then Print anArray(counter%) & " contains a numeral." badRec% = badRec% + 1 End If Next If badRec% = 0 Then Print "No name contains a numeral." End If ' Output:No name contains a numeral. ' Test the lowercase representation of each name in anArray$ ' to see if it ends in a vowel. For counter% = 1 to UB% If anArray(counter%) Like "*[aeiou]" Then Print anArray(counter%) & " " ; End If Next Print "" ' Output:Alejandro Andrea Jane
関連項目