Sds wcmatch
- 構文
- int sds_wcmatch (const char *string, const char *match);
- 機能
- 文字列のパターン マッチングを行う。sds_wcmatch は大文字と小文字の区別ができ、ワイルドカードによるマッチングができる。(ワイルドカードについては下表参照。)
- 引数
-
- *string : マッチング対象の文字列
- *match : 検索パターンの文字列。
- 戻り値
- 文字列がマッチすれば RTNORM、そうでないなら RTERROR を返す。
ワイルドカード ワイルドカード文字 意味 ` (逆シングルクオート) 特殊文字をエスケープする(次の文字を文字どおりに読む) ~ (チルダ) パターンの先頭の文字の場合、パターン以外の任意の文字にマッチする。 * 空文字列を含む任意の文字シーケンスにマッチする。検索パターンのどこでも使用できる。 ? 任意の 1 文字にマッチ # @ シングルキャラクタータイプの文字にマッチする。 @ (アット) 1 つのアルファベット文字 (A-Z) にマッチ - (ハイフン) 角括弧内で使用され、文字の範囲を指定する。 例: sds_wcmatch(3-7). , (カンマ 2 つのパターンを区切る。or の役割 # (シャープ) 1 つの数字 (0-9) にマッチ . (ピリオド) 1 つの非英数字にマッチする。 (&,%,+, etc.) [...] 囲まれた文字のいずれか 1 文字にマッチする [~...] 囲まれた文字以外の 1 文字にマッチする
- サンプル
次の例は string: char *doesthis = "1A2B3C"; の文字列をマッチさせたものである。
sds_wcmatch(doesthis,"[CAT],[~DOG]");
この例では、最初のセットC、A、T にマッチするので RTNORM を返す。"," は or を表すので、2番目のパターンにマッチしていたか否かに関係なく、RTNORMを返す。
sds_wcmatch(doesthis,"1a2b3c");
この例では、大文字小文字のケースがマッチしないので、RTERRORを返す。
sds_wcmatch(doesthis,"#@#@??");
この例では、1A2B3C が他のどのパターンにマッチするので RTNORMを返す。