Kuina-chan

くいなちゃん2018年12月11日


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

1regexライブラリ

正規表現を扱うライブラリ「regex.kn」を解説します。
正規表現の書式は、Perl互換です。
名前 説明
regex@Regex 正規表現クラス
regex@Regex.find 正規表現にマッチする部分文字列を検索するメソッド
regex@Regex.findAll 正規表現にマッチする部分文字列をすべて取得するメソッド
regex@Regex.findLast 正規表現にマッチする部分文字列を逆順検索するメソッド
regex@Regex.match 正規表現に文字列全体がマッチしているかどうかを取得するメソッド
regex@Regex.replace 正規表現にマッチする部分文字列を置換するメソッド
regex@makeRegex 正規表現クラスのインスタンスを生成する関数

2regex@Regex

「regex@Regex」は、正規表現クラスです。

2.1regex@Regex.find



「regex@Regex.find」は、正規表現にマッチする部分文字列を検索するメソッドです。

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

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

2.2regex@Regex.findAll



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

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

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

2.3regex@Regex.findLast



「regex@Regex.findLast」は、正規表現にマッチする部分文字列を逆順検索するメソッドです。

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

pos マッチした部分文字列の位置。 見つからなかった場合は-1が返る
text 検索される文字列
start 検索を開始する位置。 すべて検索する場合は-1を指定
戻り値 見つかった部分文字列。 見つからなかった場合はnullが返る
文字列の末尾から先端に向かって逆順で検索し、正規表現に最初にマッチする部分文字列を取得します。
「start」が-1でも配列の範囲内でもないとき、この関数は-1を返します。

2.4regex@Regex.match



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

func match(text: []char): [][]char

text 検索される文字列
戻り値 見つかった部分文字列の配列。 見つからなかった場合はnullが返る

2.5regex@Regex.replace



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

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

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

3regex@makeRegex

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

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

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