2015年3月15日投稿 / 投稿者 : actorbug / タグ : 投稿プログラム ライブラリ actorstool
正規表現による検索・置換ライブラリ。
EXECで別スロットに読み込むか、プログラム内にコピペして使用する。
文字列内から正規表現を検索。
正規表現を文字列で直接渡せる。
| 書式 | RXINSTR("元文字列","正規表現文字列") | |
|---|---|---|
| 引数 | 元文字列 | 元になる文字列 |
| 正規表現文字列 | 元文字列の中から検索したい正規表現文字列 | |
| 戻り | 見つかった場合はその位置、見つからなかった場合は-1 | |
| 例 | ?RXINSTR("ABC","[BC]") | |
文字列内の正規表現を置換(1回)。
正規表現を文字列で直接渡せる。
| 書式 | RXSUBST$("元文字列","正規表現文字列","置換文字列") | |
|---|---|---|
| 引数 | 元文字列 | 元になる文字列 |
| 正規表現文字列 | 元文字列の中から検索したい正規表現文字列 | |
| 置換文字列 | 置き換えられる文字列 | |
| 戻り | 置換された文字列 | |
| 例 | ?RXSUBST$("ABC","[BC]","D") | |
文字列内の正規表現を置換(全部)。
正規表現を文字列で直接渡せる。
| 書式 | RXSUBSTALL$("元文字列","正規表現文字列","置換文字列") | |
|---|---|---|
| 引数 | 元文字列 | 元になる文字列 |
| 正規表現文字列 | 元文字列の中から検索したい正規表現文字列 | |
| 置換文字列 | 置き換えられる文字列 | |
| 戻り | 置換された文字列 | |
| 例 | ?RXSUBSTALL$("ABC","[BC]","D") | |
正規表現オブジェクト生成。
| 書式 | REGEX("正規表現文字列",オプション) | |
|---|---|---|
| 引数 | 正規表現文字列 | 正規表現を表す文字列 |
| オプション | 後述 | |
| 戻り | 正規表現オブジェクト(実体は文字列配列) | |
| 例 | DIM RX$[0]:RX$=REGEX("[BC]",1) | |
文字列内から正規表現を検索。
オプションを指定したい場合や、同じ正規表現で何度も検索する場合は、こちらを使用する。
| 書式 | ROINSTR("元文字列",正規表現オブジェクト) | |
|---|---|---|
| 引数 | 元文字列 | 元になる文字列 |
| 正規表現オブジェクト | 元文字列の中から検索したい正規表現オブジェクト | |
| 戻り | 見つかった場合はその位置、見つからなかった場合は-1 | |
| 例 | ?ROINSTR("ABC",REGEX("[BC]",1)) | |
文字列内の正規表現を置換(1回)。
オプションを指定したい場合や、同じ正規表現で何度も検索する場合は、こちらを使用する。
| 書式 | ROSUBST$("元文字列",正規表現オブジェクト,"置換文字列") | |
|---|---|---|
| 引数 | 元文字列 | 元になる文字列 |
| 正規表現オブジェクト | 元文字列の中から検索したい正規表現オブジェクト | |
| 置換文字列 | 置き換えられる文字列 | |
| 戻り | 置換された文字列 | |
| 例 | ?ROSUBST$("ABC",REGEX("[BC]",1),"D") | |
文字列内の正規表現を置換(全部)。
オプションを指定したい場合や、同じ正規表現で何度も検索する場合は、こちらを使用する。
| 書式 | ROSUBSTALL$("元文字列",正規表現オブジェクト,"置換文字列") | |
|---|---|---|
| 引数 | 元文字列 | 元になる文字列 |
| 正規表現オブジェクト | 元文字列の中から検索したい正規表現オブジェクト | |
| 置換文字列 | 置き換えられる文字列 | |
| 戻り | 置換された文字列 | |
| 例 | ?ROSUBSTALL$("ABC",REGEX("[BC]",1),"D") | |
文字列内の指定位置以降で正規表現を検索。
結果を先頭・末尾位置で返すので、範囲を基準に処理したい場合に使用する。
これ以外のすべての検索・置換関数は、この関数を使って実装している。
| 書式 | ROMATCH(開始位置,"元文字列",正規表現オブジェクト) | |
|---|---|---|
| 引数 | 開始位置 | 検索開始する位置 |
| 元文字列 | 元になる文字列 | |
| 正規表現オブジェクト | 元文字列の中から検索したい正規表現オブジェクト | |
| 戻り | 見つかった文字列の範囲とキャプチャ範囲を表す数値配列R | |
| R[0]が文字列先頭、R[1]が末尾+1、R[2]が最初のキャプチャ先頭、R[3]が末尾+1など | ||
| 例 | DIM R[0]:R=ROMATCH(0,"ABC",REGEX("B(C)",1)) | |
| メタ文字 | 説明 |
|---|---|
| \ | 直後のメタ文字を無効化して通常文字として扱う |
| \n | LF、CHR$(10) |
| \r | CR、CHR$(13) |
| \t | Tab、CHR$(9) |
| \xFF | 16進2桁で文字コード指定 |
| \uFFFF | 16進4桁で文字コード指定 |
| [] | 文字クラス、括弧内の文字のいずれかにマッチ、-で範囲指定可能 |
| [^] | 否定文字クラス、括弧内の文字以外にマッチ、-で範囲指定可能 |
| . | 任意の1文字(改行を除く)にマッチ、単一行モードなら改行もマッチ |
| \d | 数字、[0-9]と同じ |
| \D | 非数字、[^0-9]と同じ |
| \w | 単語構成文字、[a-zA-Z0-9_]と同じ |
| \W | 非単語文字、[^a-zA-Z0-9_]と同じ |
| \s | 空白文字、[ \n\r\t]と同じ |
| \S | 非空白文字、[^ \n\r\t]と同じ |
| ^ | 文字列の先頭、複数行モードなら改行の次にもマッチ |
| $ | 文字列の末尾 or 最後が改行ならその前、複数行モードなら改行の前にもマッチ |
| \A | 文字列の先頭 |
| \Z | 文字列の末尾 or 最後が改行ならその前 |
| \z | 文字列の末尾 |
| \b | 単語境界 |
| \B | 単語境界以外 |
| \1~\9 | 後方参照 |
| () | グループ化 & キャプチャ |
| (?:) | グループ化(キャプチャなし) |
| (?=) | 肯定の先読み |
| (?!) | 否定の先読み |
| (?<=) | 肯定の戻り読み(通常文字・文字クラス・一部アンカーのみ使用可) |
| (?<!) | 否定の戻り読み(通常文字・文字クラス・一部アンカーのみ使用可) |
| (?>) | アトミックなグループ |
| (?修飾子) | モード修飾子(?i)(?-i)など |
| (?修飾子:) | モード修飾子の範囲(?i:...)など |
| | | 選択 |
| * | 直前の式の0回以上の繰り返し、{0,}と同じ |
| + | 直前の式の1回以上の繰り返し、{1,}と同じ |
| ? | 直前の式が0回か1回現れる、{0,1}と同じ |
| {n} | 直前の式のn回の繰り返し |
| {m,} | 直前の式のm回以上の繰り返し |
| {m,n} | 直前の式のm回以上n回以下の繰り返し |
| *? | 直前の式の0回以上の繰り返し(最短マッチ) |
| +? | 直前の式の1回以上の繰り返し(最短マッチ) |
| ?? | 直前の式が0回か1回現れる(最短マッチ) |
| {m,}? | 直前の式のm回以上の繰り返し(最短マッチ) |
| {m,n}? | 直前の式のm回以上n回以下の繰り返し(最短マッチ) |
| *+ | 直前の式の0回以上の繰り返し(強欲) |
| ++ | 直前の式の1回以上の繰り返し(強欲) |
| ?+ | 直前の式が0回か1回現れる(強欲) |
| {m,}+ | 直前の式のm回以上の繰り返し(強欲) |
| {m,n}+ | 直前の式のm回以上n回以下の繰り返し(強欲) |
| 置換文字列 | 説明 |
|---|---|
| $$ | 1個の$ |
| $& | マッチした文字列 |
| $` | マッチした文字列の前 |
| $' | マッチした文字列の後 |
| $1~$9 | キャプチャされた文字列 |
複数指定する場合は足し合わせる。
| オプション | 値 | 説明 |
|---|---|---|
| RXOPT_IC | 1 | 大文字小文字を区別しない |
| RXOPT_SL | 2 | 単一行モード("."が改行にもマッチする) |
| RXOPT_ML | 4 | 複数行モード("^","$"が改行前後にもマッチする) |
プチコン3号用の公開キーです。トップメニューの「作品公開とダウンロード」から公開キーを入力すると、作品をダウンロードすることができます。
Toukou/LEXと同じプロジェクトにまとめられている。ライブラリ本体がABGREGEX、テスト用プログラムがABGREGEX_TEST。
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)
表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.161 秒 | このページの最終更新 : 2022/09/20 (火) 12:49:40 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30