コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
GizmoLab 関連
オンラインショップ
CAD&CGブログ
YouTube
GitHub
CAD 系
GizmoTools
AutoLISP
Visual LISP
BricsCADのLISP
GzLib
DCL
OpenDCL
DWG
DXF
CADのコマンド一覧
システム変数
図形の種類
Ver別サポートAPI
CAD用語集
メモ
newLISP
CommonLISP
Script-Fu
Inno setup
JavaScript
ANDROID
Windowsでのファイルハッシュ確認
Prolog
Python
Clojure
Electron
フォント
数学メモ
イメージサイズとメモリ量
blender
Processwire
Win10,11メモ
IIJmio
mediawiki資料
ヘルプ
検索
検索
表示
ログイン
個人用ツール
ログイン
Wcmatchのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Wcmatch
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{AutoLISP}} ; 構文 : (wcmatch ''string'' ''pattern'') ; 機能 : ワイルドカードを使用して、文字列のパターン マッチングを行う。 ; 引数 :* string : 比較する文字列。 比較では大文字と小文字が区別されるので、大文字と小文字が一致していなければならない。 :* pattern : string とマッチングするパターンを含んだ文字列。 pattern 引数には、次の 「ワイルドカード文字」の表にあるワイルドカード パターン マッチング文字を含めることができる。 パターン内でカンマを使用することにより、複数のパターン条件を入力することができる。 string と pattern の先頭の約 500 文字のみが比較され、それ以降は無視される。 : * どちらの引数にも、クォーテーションで囲まれた文字列、または文字列変数を使用できる。 これは、変数や AutoLISP 関数が返す値を string や pattern に使用する場合にも該当する。 ; 戻り値 : string と pattern がマッチした場合、wcmatch 関数は T を返す。それ以外の場合は、nil を返す。 {| class="wikitable" ! colspan="2" | ワイルド カード文字 |- ! 文字 !! 定義 |- | # (シャープ記号) || 1 つの数字にマッチする |- | @ (アット記号) || 1 つのアルファベット文字にマッチする |- | . (ピリオド) || 1 つの非英数字にマッチする |- | * (アスタリスク) || 空文字列を含む任意の文字シーケンスにマッチし、検索パターンの先頭、中間、末尾のどこにでも使用できる。 |- | ? (クエスチョンマーク) || 任意の 1 文字にマッチする |- |~ (ティルダ) || パターンの先頭の文字の場合、パターン以外の任意の文字にマッチする |- | [...] || 囲まれた文字のいずれか 1 文字にマッチする |- | [~...] || 囲まれた文字以外の 1 文字にマッチする |- | - (ハイフン) || 角括弧内で使用され、文字の範囲を指定する |- | , (カンマ) || 2 つのパターンを区切る |- | ` (バッククオーテーション) || 特殊文字をエスケープする(次の文字を文字どおりに読む) |} ; サンプル <pre class="brush:autolisp;">; 次のコマンドは、文字列が文字 N で始まるかどうかを調べている。 (wcmatch "Name" "N*") T </pre> <pre class="brush:autolisp;">; 次の例は、3 つの比較を行う。 3 つのパターン条件のいずれかを満足すると、wcmatch 関数は T を返す。 テストは次の 3 つ。 ; 文字列が 3 文字で構成されている。 ; 文字列に m が含まれない。 ; 文字列が文字 " N" で始まる。 ; この 3 つの条件のいずれかを満足している場合、wcmatch 関数は T を返す。 (wcmatch "Name" "???,~*m*,N*") T ; 上記の例では、最後の条件を満足しているので、wcmatch 関数は T を返す。 </pre> : wcmatch 関数でエスケープ文字を使用する : 文字列内のワイルドカード文字をテストするために、バッククォーテーション(`)を使用して文字をエスケープできる。 エスケープとは、バッククォーテーションの次の文字がワイルドカードとして読み込まれないということを意味し、文字どおりに比較される。 たとえば、文字列 "Name" 内にカンマが存在するかどうかを検索するには、次のように入力する。 <pre class="brush:autolisp;"> (wcmatch "Name" "*`,*") nil </pre> : C や AutoLISP プログラミング言語では、円記号(¥)はエスケープ文字として使用されるので、文字列内で 1 つの円記号を作成するには 2 つの円記号(¥¥)が必要。 文字列 "Name" 内に円記号が存在するかどうかを調べるには、次のように関数を呼び出す。 (wcmatch "Name" "*`¥¥*") '''nil''' * 括弧内のすべての文字([ . . . ])は文字どおりに読み取られるので、エスケープする必要はない。 ただし、例外として先頭にあるティルダ文字(~)は否定文字として読み取られる。これは、ティルダの後の文字以外のすべての文字が条件を満足するということである(例 "[~ABC]" は ABC 以外の文字、Z や 0、a などにマッチする)。 * ハイフン(-)は括弧内の先頭および最後にある場合や(例 "[–ABC]" や "[ABC–]")、先頭のティルダの次にある場合(例 "[~‑ABC]")は文字どおりに読み取られる。 それ以外の場合、ハイフン(-)は文字の範囲を指定するために使用される。 * 範囲は 1 文字についてのみ有効なので、"STR[1-38]" は STR1、STR2、STR3、STR8 にマッチし、"[A-Z]" は 1 つの大文字のアルファベットにマッチする。 * 右角括弧(])も、それが角括弧で囲まれた最初の文字である場合、および先頭のティルダの次にある場合("[ ]ABC]" や "[~]ABC]")は、文字どおりに読み取られる。 * 日本語は対象になっていないので、ASCIIコードに分解したりする必要がある不親切仕様なので、ActiveX とか別の一般的な正規表現使ったほうがわかりやすいやもしれず。 *'''注''' : 将来の AutoLISP でワイルドカード文字が追加される可能性があるので、パターン内のすべての非英数字をエスケープして上位互換性を保証するとよい。 [[Category:AutoLISP]]
このページで参照読み込みされているページ:
テンプレート:AutoLISP
(
ソースを閲覧
)
Wcmatch
に戻る。
検索
検索
Wcmatchのソースを表示
話題を追加