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