Extension:RegexFunctions
![]() リリースの状態: 安定 |
|
---|---|
実装 | パーサー関数 |
説明 | Regular expression based parser functions |
作者 | Ryan Schmidt (Skizzerzトーク) |
最新バージョン | 2.0.0 (2020-03-18) |
MediaWiki | 1.31+ |
ライセンス | パブリック ドメイン |
ダウンロード | 使用法 |
四半期ごとのダウンロード数 | 22 (Ranked 118th) |
translatewiki.net で翻訳を利用できる場合は、RegexFunctions 拡張機能の翻訳にご協力ください | |
The RegexFunctions extension provides regular expression based parser functions.
使用法
As of now, this extension defines three parser functions: rmatch
, rsplit
, and rreplace
:
#rmatch:
{{#rmatch:string|pattern|then|else}}
- string (必須) - The text the function uses for the matching.
- pattern (必須) - The regular expression to use on the text.
- then (省略可能) - What to return if the match was successful. $# and \# contain the captured text. Use ${#}# if you want a group followed by another number.
- else (省略可能) - What to return if the match was not successful. Defaults to an empty string.
#rsplit:
{{#rsplit:string|pattern|piece}}
- string (必須) - The text the function will split.
- pattern (必須) - The regular expression to use on the text. No text is captured.
- piece (省略可能) - The piece to return. Defaults to 0 (the first piece). Negative numbers return pieces starting from the end. For example, -1 is the last piece.
#rreplace:
{{#rreplace:string|pattern|replacement}}
- string (必須) - The text the function will replace.
- pattern (必須) - The regular expression to use on the text.
- replacement (必須) - The text to replace the matched text with. $# and \# contain the captured text. Use ${#}# if you want a group followed by another number.
Except for the string parameter, every parameter can be specified either by name or position.
例: {{#rmatch:some string|pattern=^.+$|then=success|else=failure}}
。
If your wiki's content language is not English, both the English names as well as a translated name may be usable.
In addition, every function supports the following named parameters which allow you to modify the behavior of the regex:
- multiline - If non-empty,
^
and$
match the start and end of each line, rather than the start and end of the entire string. - caseless - If non-empty, the pattern is case-insensitive.
- ungreedy - If non-empty,
*
and+
do not match greedily whereas*?
and+?
match greedily. - extended - If non-empty, the regex can contain spaces and inline comments. See the PHP documentation in the pattern help section for more information.
- dotall - If non-empty,
.
matches all characters, including newlines. Normally it does not match newlines.
For example, {{#rmatch:XxXxX|x+|$0|caseless=1}}
would result in the output XxXxX
because x+
matches both uppercase and lowercase X's when the caseless modifier is set.
パターン ヘルプ
For help on constructing the syntax, please read [1] for general help and [2] for an overview of the modifiers.
Delimiters are not required on the pattern in general and should be omitted for readability where possible, but are required if you would like to specify the single-letter modifiers after the pattern. In this event, the delimiters must be forward slashes (no other delimiter type is supported).
インストール
- ダウンロードして、ファイルを
extensions/
フォルダー内のRegexFunctions
という名前のディレクトリ内に配置します。
開発者とコード寄稿者は、上記の代わりに以下を使用してGitからインストールします:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/RegexFunctions - 以下のコードを LocalSettings.php ファイルの末尾に追加します:
wfLoadExtension( 'RegexFunctions' );
- 完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。
関連項目
- ReplaceSet - an excellent substitute for using nested #replace commands when you need to perform a sequence of replaces on a single text string.
- Regex Fun - just another regex extension with more functionality but without any customization variables for limitations.
この拡張機能は以下のウィキ ファーム/ウィキ ホスト/パッケージに含まれています: これは正式な一覧ではありません。 一部のウィキ ファーム/ウィキ ホスト/パッケージは、ここに記載されていなくてもこの拡張機能を含んでいる場合があります。 必ずご利用のウィキ ファーム、ウィキ ホスト、バンドルで確認してください。 |