WikiChree.COM
新規
編集
添付
管理
WikiChreeガイド
WikiChreeの公式ガイドです。
最新の20件
2026-09-19
プラグイン/linkvote
2026-09-05
DokuFarm
WikiChree.COM
プラグイン/touchgraph
プラグイン/tracker_list
プラグイン/template
プラグイン/version
プラグイン/yetlist
プラグイン/unfreeze
プラグイン/source
プラグイン/versionlist
プラグイン/update_entities
2026-09-04
[テーブル番号または設定]
プラグイン/vote
プラグイン/tracker
プラグイン/topicpath
プラグイン/size
プラグイン/showrss
プラグイン/server
プラグイン/setlinebreak
開始行:
* Pkript/文法/正規表現 [#s13b1325]
正規表現リテラルの構文、使えるメソッド、照合時の制限。
** リファレンス [#mff0e3fc]
*** 構文 [#adf6361f]
#highlight{{
/パターン/フラグ
}}
- 値としての型は RegExp。変数に代入できる
- 設定定数 PKRIPT_REGEX が 1(既定)の場合にリテラルとし...
#highlight{{
const DATE = /(\d{4})-(\d{2})-(\d{2})/;
function plugin_hello_convert(e) {
const line = e.args[0];
if (!DATE.test(line)) return "<p>日付ではありません</...
return "<p>" + htmlsc(line.replace(DATE, "$1年$2月$3...
}
}}
*** フラグ [#f74f7aae]
|~フラグ|~説明|h
|g|1件目で止めず全件を対象にする|
|i|大文字と小文字を区別しない|
|m|^ と $ が行頭と行末にも一致する|
|s|. が改行にも一致する|
UTF-8としての解釈は常に有効(PCREの u 修飾子が必ず付く)...
JavaScript の y(sticky)は、対応する lastIndex を持たな...
*** メソッド [#pbdd2da1]
|~呼び出し|~戻り値|h
|re.test(str)|一致すれば true|
|re.exec(str)|最初の一致の配列(全体, グループ1, ...)。...
|re.source() / re.flags() / re.global()|書いたパターン / ...
|str.match(re)|g 無し: 最初の一致の配列。g 有り: 一致した...
|str.matchAll(re)|一致ごとの配列の配列。無ければ空配列|
|str.search(re)|最初の一致の位置(文字数)。無ければ -1|
|str.replace(re, to)|g 有りなら全件、無ければ1件を置換|
|str.replaceAll(re, to)|g の有無によらず全件を置換|
|str.split(re)|一致で分割した配列|
match が g の有無で形を変えるのは JavaScript と同じ挙動に...
#highlight{{
const m = "2024-05-06".match(/(\d+)-(\d+)/);
// m は ["2024-05", "2024", "05"]
const all = "a1 b2".matchAll(/([a-z])(\d)/g);
// all は [["a1","a","1"], ["b2","b","2"]]
}}
**** 置換文字列 [#replacement]
|~書き方|~意味|h
|$1 〜 $99|グループ|
|${1}|番号の切れ目を明示したグループ。"${1}0" のように直...
|$&|一致した全体|
|$$|$ そのもの|
*** 使えない書き方 [#ke56d0f0]
|~書き方|~理由|h
|(?R) (?0) (?1) (?&name)|再帰とサブルーチン呼び出し。...
|(?C...)|コールアウト|
|\K \C|一致開始位置やバイト単位の操作。位置の報告が嘘にな...
グループとして書けるのは (...) (?:...) (?=...) (?!...) (?...
*** 暴走の止め方 [#vfea6d87]
正規表現は、スクリプトが「そこに辿り着くまでのステップ数...
そのためすべての照合をPCREのバックトラック上限の下で走ら...
上限に達した照合は「一致しなかった」ではなくリソース上限...
パターンの検査は解析時に行う。書き方の誤りや使えない構文...
*** / の解釈 [#a6e4513d]
JSXの < と同じ規則。式が始まれる位置の / だけが正規表...
#highlight{{
let a = 10 / 2; // 除算
return /a+/.test(s); // 正規表現(return の直後)
const r = /a+/; // 正規表現(= の直後)
return f(10) / 2; // 除算() の直後)
}}
識別子、数値、)、] の直後の / は除算のままなので、既存の...
** 使用法 [#d4d55f09]
*** 文字列の置換を行う [#usage_replace]
#highlight{{
const text = "2026-08-31";
return "<p>" + text.replace(/(\d{4})-(\d{2})-(\d{2})/, "$...
}}
*** 入力形式を検証する [#usage_test]
#highlight{{
const ISO_DATE = /^\d{4}-\d{2}-\d{2}$/;
if (!ISO_DATE.test(e.args[0])) return "<p>日付の形式が正...
}}
*** 全件マッチを取り出す [#usage_matchall]
#highlight{{
const LINK = /\[\[(.+?)\]\]/g;
const names = text.matchAll(LINK).map((m) => m[1]);
}}
終了行:
* Pkript/文法/正規表現 [#s13b1325]
正規表現リテラルの構文、使えるメソッド、照合時の制限。
** リファレンス [#mff0e3fc]
*** 構文 [#adf6361f]
#highlight{{
/パターン/フラグ
}}
- 値としての型は RegExp。変数に代入できる
- 設定定数 PKRIPT_REGEX が 1(既定)の場合にリテラルとし...
#highlight{{
const DATE = /(\d{4})-(\d{2})-(\d{2})/;
function plugin_hello_convert(e) {
const line = e.args[0];
if (!DATE.test(line)) return "<p>日付ではありません</...
return "<p>" + htmlsc(line.replace(DATE, "$1年$2月$3...
}
}}
*** フラグ [#f74f7aae]
|~フラグ|~説明|h
|g|1件目で止めず全件を対象にする|
|i|大文字と小文字を区別しない|
|m|^ と $ が行頭と行末にも一致する|
|s|. が改行にも一致する|
UTF-8としての解釈は常に有効(PCREの u 修飾子が必ず付く)...
JavaScript の y(sticky)は、対応する lastIndex を持たな...
*** メソッド [#pbdd2da1]
|~呼び出し|~戻り値|h
|re.test(str)|一致すれば true|
|re.exec(str)|最初の一致の配列(全体, グループ1, ...)。...
|re.source() / re.flags() / re.global()|書いたパターン / ...
|str.match(re)|g 無し: 最初の一致の配列。g 有り: 一致した...
|str.matchAll(re)|一致ごとの配列の配列。無ければ空配列|
|str.search(re)|最初の一致の位置(文字数)。無ければ -1|
|str.replace(re, to)|g 有りなら全件、無ければ1件を置換|
|str.replaceAll(re, to)|g の有無によらず全件を置換|
|str.split(re)|一致で分割した配列|
match が g の有無で形を変えるのは JavaScript と同じ挙動に...
#highlight{{
const m = "2024-05-06".match(/(\d+)-(\d+)/);
// m は ["2024-05", "2024", "05"]
const all = "a1 b2".matchAll(/([a-z])(\d)/g);
// all は [["a1","a","1"], ["b2","b","2"]]
}}
**** 置換文字列 [#replacement]
|~書き方|~意味|h
|$1 〜 $99|グループ|
|${1}|番号の切れ目を明示したグループ。"${1}0" のように直...
|$&|一致した全体|
|$$|$ そのもの|
*** 使えない書き方 [#ke56d0f0]
|~書き方|~理由|h
|(?R) (?0) (?1) (?&name)|再帰とサブルーチン呼び出し。...
|(?C...)|コールアウト|
|\K \C|一致開始位置やバイト単位の操作。位置の報告が嘘にな...
グループとして書けるのは (...) (?:...) (?=...) (?!...) (?...
*** 暴走の止め方 [#vfea6d87]
正規表現は、スクリプトが「そこに辿り着くまでのステップ数...
そのためすべての照合をPCREのバックトラック上限の下で走ら...
上限に達した照合は「一致しなかった」ではなくリソース上限...
パターンの検査は解析時に行う。書き方の誤りや使えない構文...
*** / の解釈 [#a6e4513d]
JSXの < と同じ規則。式が始まれる位置の / だけが正規表...
#highlight{{
let a = 10 / 2; // 除算
return /a+/.test(s); // 正規表現(return の直後)
const r = /a+/; // 正規表現(= の直後)
return f(10) / 2; // 除算() の直後)
}}
識別子、数値、)、] の直後の / は除算のままなので、既存の...
** 使用法 [#d4d55f09]
*** 文字列の置換を行う [#usage_replace]
#highlight{{
const text = "2026-08-31";
return "<p>" + text.replace(/(\d{4})-(\d{2})-(\d{2})/, "$...
}}
*** 入力形式を検証する [#usage_test]
#highlight{{
const ISO_DATE = /^\d{4}-\d{2}-\d{2}$/;
if (!ISO_DATE.test(e.args[0])) return "<p>日付の形式が正...
}}
*** 全件マッチを取り出す [#usage_matchall]
#highlight{{
const LINK = /\[\[(.+?)\]\]/g;
const names = text.matchAll(LINK).map((m) => m[1]);
}}
ページ名:
既存のページ名で編集する