Home English

Kuina-chan

くいなちゃんDec 15, 2017


プログラミング言語Kuin」の「regexライブラリ」についてです。

regexライブラリ

正規表現を扱うライブラリ「regex.kn」を解説します。
正規表現の書式は、Perl互換です。
regexライブラリに用意されているものはregexライブラリの通りです。
regexライブラリ
名前 説明
regex@makeRegex 正規表現クラスのインスタンスを生成する関数
regex@Regex 正規表現クラス

regex@makeRegex

「regex@makeRegex」は、正規表現クラスのインスタンスを生成する関数です(regex@makeRegex関数の定義)。
regex@makeRegex関数の定義

 func makeRegex(pattern: []char): regex@Regex

pattern 正規表現で書かれた検索パターン
戻り値 正規表現クラスのインスタンス。 正規表現の形式が不正な場合はnullが返る

regex@Regex

「regex@Regex」は正規表現を扱うクラスで、定義はregex@Regexクラスの定義の通りです。
regex@Regexクラスの定義
名前 説明
regex@Regex.find 正規表現にマッチする部分文字列を検索するメソッド
regex@Regex.findLast 正規表現にマッチする部分文字列を逆順検索するメソッド
regex@Regex.findAll 正規表現にマッチする部分文字列をすべて取得するメソッド
regex@Regex.match 正規表現に文字列全体がマッチしているかどうかを取得するメソッド
regex@Regex.replace 正規表現にマッチする部分文字列を置換するメソッド

regex@Regex.find

「regex@Regex.find」は文字列の先頭から末尾に向かって検索し、正規表現に最初にマッチする部分文字列を取得するメソッドです(regex@Regex.findメソッドの定義)。
regex@Regex.findメソッドの定義

 func find(pos: &int, text: []char, start: int): [][]char

pos マッチした部分文字列の位置。 見つからなかった場合は-1が返る
text 検索される文字列
start 検索を開始する位置。 すべて検索する場合は-1を指定
戻り値 見つかった部分文字列。 見つからなかった場合はnullが返る
「start」が-1でも配列の範囲内でもないとき、この関数は-1を返します。

regex@Regex.findLast

「regex@Regex.findLast」は文字列の末尾から先端に向かって逆順で検索し、正規表現に最初にマッチする部分文字列を取得するメソッドです(regex@Regex.findLastメソッドの定義)。
regex@Regex.findLastメソッドの定義

 func findLast(pos: &int, text: []char, start: int): [][]char

pos マッチした部分文字列の位置。 見つからなかった場合は-1が返る
text 検索される文字列
start 検索を開始する位置。 すべて検索する場合は-1を指定
戻り値 見つかった部分文字列。 見つからなかった場合はnullが返る
「start」が-1でも配列の範囲内でもないとき、この関数は-1を返します。

regex@Regex.findAll

「regex@Regex.findAll」は正規表現にマッチする部分文字列をすべて取得するメソッドです(regex@Regex.findAllメソッドの定義)。
regex@Regex.findAllメソッドの定義

 func findAll(pos: &[]int, text: []char): [][][]char

pos マッチした部分文字列の位置が格納された配列。 見つからなかった場合はnullが返る
text 検索される文字列
戻り値 見つかった部分文字列の配列。 見つからなかった場合はnullが返る

regex@Regex.match

「regex@Regex.match」は正規表現に文字列全体がマッチしているかどうかを取得するメソッドです(regex@Regex.matchメソッドの定義)。
regex@Regex.matchメソッドの定義

 func match(pos: &int, text: []char): [][]char

pos マッチした部分文字列の位置。 見つからなかった場合は-1が返る
text 検索される文字列
戻り値 見つかった部分文字列の配列。 見つからなかった場合はnullが返る

regex@Regex.replace

「regex@Regex.replace」は正規表現にマッチする部分文字列を置換するメソッドです(regex@Regex.replaceメソッドの定義)。
regex@Regex.replaceメソッドの定義

 func replace(text: []char, newText: []char, all: bool): []char

text 検索される文字列
newText マッチした部分文字列を置換する文字列
all 複数マッチしたときにすべて置換するならtrue、最初の1つのみを置換するならfalse
戻り値 置換後の文字列
マッチしなかった場合やnewTextの形式が不正な場合は、textの値がそのまま返ります。
1513347169ja