説明

正規表現(RE)を使用して、パターンに一致する文字列を指定位置以降から検索します。この検索では大文字と小文字は区別されません。エスケープシーケンス、アンカー、修飾子など、正規表現の詳細については、『ColdFusion アプリケーションの開発』の関数での正規表現の使用を参照してください。

戻り値

returnsubexpressions パラメーターの値によって異なります。

  • returnsubexpressions = "False" の場合:
    • 文字列中で一致した文字列の先頭位置が返されます。
    • 指定した正規表現に一致する部分が文字列中にない場合は 0 が返されます。
  •  returnsubexpressions= "True"の場合:2 つの配列len および pos を含んだ構造体が返されます。配列の要素は次のとおりです。
    • 指定した正規表現に一致する部分が見つかった場合、len 配列と pos 配列の先頭要素には、正規表現全体に最初に一致した部分文字列の長さと位置がそれぞれ格納されます。
    • 正規表現の中に括弧でグループ化されている部分がある場合、後続の各配列要素には、各グループに最初に一致した部分文字列の長さと位置がそれぞれ格納されます。
    • 指定した正規表現に一致する部分が見つからなかった場合、len 配列と pos 配列の先頭要素には 0 が格納されます。

カテゴリ

履歴

  • ColdFusion(2018 リリース)アップデート 5:useJavaAsRegexEngine フラグが Application.cfc に追加されました。Java Regex をデフォルトの Regex エンジンとして使用するには、このフラグを有効にします。詳しくは、アプリケーション変数を参照してください。このフラグを使用した正規表現の利用については、正規表現の使用を参照してください。
  • ColdFusion(2016 リリース):scope パラメーターが追加されました。

関数のシンタックス

REFindNoCase(reg_expression, string [, start, returnsubexpressions, scope])

関連項目

パラメーター

パラメーター

説明

reg_expression

検索に使用する正規表現です。大文字と小文字は区別されません。詳細については、『ColdFusion アプリケーションの開発』の関数での正規表現の使用を参照してください。

string

文字列、または文字列を含んでいる変数です。検索対象の文字列を指定します。

start

オプション。正の整数、または正の整数を含んでいる変数です。検索を開始する位置を指定します。デフォルト値は 1 です。

returnsubexpressions

オプション。ブール値です。reg_expression に一致した部分文字列を、配列 len および pos として返すかどうかを指定します。

  • true:正規表現に一致する部分が見つかった場合、その長さと位置が、両配列の先頭要素にそれぞれ格納されます。正規表現の中に括弧でグループ化されている部分がある場合、後続の各配列要素には、各グループに最初に一致した部分文字列の長さと位置がそれぞれ格納されます。正規表現に一致する部分が見つからなかった場合、両配列の要素数は 1 となり、要素の値として 0 が格納されます。
  • false:文字列内で正規表現に一致した部分の先頭位置が返されます(デフォルト)。
scope

オプション

  • one:正規表現に最初に一致した値を返します。
  • all:正規表現に一致したすべての値を返します。

使用方法

この関数は、文字列内で最初に出現する正規表現を検索します。正規表現、またはその中の部分文字列が 2 回目以降に出現する箇所を検索するには、この関数を複数回、そのつど開始位置を変えて呼び出します。次回の開始位置を決定するには、returnsubexpressions パラメーターを使用し、len 配列と pos 配列のそれぞれの先頭要素に返された値の和を求めます。

scope パラメーターの使用例

<cfscript>
	// when start=1, returnSubexpressions=true, and scope="one"
	writeDump(REFindNoCase("[0-9][A-Z][a-z]+", "ColdFusion 123Cold 789Fusion!",1,true,"one"));
</cfscript>

出力

f2

<cfscript>
	// when start=1, returnSubexpressions=true, and scope="all"
	writeDump(REFindNoCase("[0-9][A-Z][a-z]+", "ColdFusion 123Cold 789Fusion!",1,true,"all"));
</cfscript>
f1

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

リーガルノーティス   |   プライバシーポリシー