「モジュール:String/doc」の版間の差分
Iyokanmorigen (トーク | 投稿記録) 細 1版 をインポートしました |
Iyokanmorigen (トーク | 投稿記録) 細 「モジュール:String/doc」を保護しました ([編集=管理者のみ許可] (無期限) [移動=管理者のみ許可] (無期限)) |
(相違点なし)
| |
2019年2月1日 (金) 04:21時点における最新版
| これはモジュール:Stringの解説サブページです。 使用方法、カテゴリ、およびその他テンプレート:SUBJECTSPACE jaページ自体に含まれない情報を収容しています。 |
| このLuaモジュールは172,000以上のページで使われています。 余計な混乱やサーバーへの負荷を避けるために、どんな変更でも最初はモジュールのサンドボックス・サブページ、テストケース・サブページで試すべきです。そうすれば、試した変更を1度の編集でこのモジュールに加えることができます。しかし、最初にあなたの提案した変更を、この項目のノートで議論するようにお願いします。 |
| このモジュールは保護されています。このモジュールは非常に多くのページで使用されています。荒らしまたは過失によって多くのページが影響を受け、また些細な編集でもサーバーに多大な負荷をかけるため、編集保護されています。 |
文字列を扱ういくつかの関数を提供するモジュールです。UTF-8でエンコードされた文字列を取り扱えます。
このモジュールのユニットテストについてはモジュール:String/testcasesをご参照ください。
共通引数
| 引数 | 内容 | 既定値 | 説明 |
|---|---|---|---|
| ignore_errors | エラー無視 | なし |
|
| error_category | エラーカテゴリ | Category:モジュールStringのエラー | エラーがあるときのCategory:追跡カテゴリ名を指定する |
| no_category | カテゴリ付与 | なし |
|
使い方
len
文字列の長さを返します。 <syntaxhighlight lang="moin"> 3 </syntaxhighlight> もしくは <syntaxhighlight lang="moin"> 3 </syntaxhighlight>
| 引数 | 内容 | 既定値 | 説明 |
|---|---|---|---|
| s | 文字列 | なし | 対象の文字列 |
例:
{{#invoke:String|len| abcdefghi }}→ 11{{#invoke:String|len|s= abcdefghi }}→ 9
sub
文字列から指定された部分の文字列を抜き出して返します。 <syntaxhighlight lang="moin"> 文字列 </syntaxhighlight> もしくは <syntaxhighlight lang="moin"> 文字列 </syntaxhighlight>
| 引数 | 内容 | 既定値 | 説明 |
|---|---|---|---|
| s | 文字列 | なし | 元の文字列 |
| i | 開始位置 | 1 | 抜き出す初めの文字の位置 |
| j | 終了位置 | -1 | 抜き出す最後の文字の位置 |
開始位置・終了位置には負の数を指定することも可能です。その場合、文字列の後ろから数えます。例えば、「-1」は文字列の最後の文字です。
文字の位置が範囲外の場合、エラーになります。
例:
"{{#invoke:String|sub| abcdefghi }}"→ " abcdefghi ""{{#invoke:String|sub|s= abcdefghi }}"→ "abcdefghi""{{#invoke:String|sub| abcdefghi | 3 }}"→ "bcdefghi ""{{#invoke:String|sub|s= abcdefghi |i= 3 }}"→ "cdefghi""{{#invoke:String|sub| abcdefghi | 3 | 4 }}"→ "bc""{{#invoke:String|sub|s= abcdefghi |i= 3 |j= 4 }}"→ "cd"
sublength
この関数は{{Str sub}}を実装しており、Str subのような古いテンプレートを維持するために残されています。文字列から指定された部分の文字列を抜き出して返します。
<syntaxhighlight lang="moin"> 文字列 </syntaxhighlight>
| 引数 | 内容 | 既定値 | 説明 |
|---|---|---|---|
| s | 文字列 | なし | 元の文字列 |
| i | 開始位置 | 1 | 抜き出す初めの文字の位置。1文字目は"0"を指定します |
| len | 長さ | 元の文字列の長さ | 抜き出す文字列の長さ |
例:
{{#invoke:String|sublength|s= abcdefghi }}→ abcdefghi{{#invoke:String|sublength|s= abcdefghi |i= 3 }}→ defghi{{#invoke:String|sublength|s= abcdefghi |i= 3 |len= 4 }}→ defg
match
パターンに一致する文字列を返します。 <syntaxhighlight lang="moin"> エラー出力 </syntaxhighlight> もしくは <syntaxhighlight lang="moin"> エラー出力 </syntaxhighlight>
| 引数 | 内容 | 既定値 | 説明 |
|---|---|---|---|
| s | 文字列 | なし | 検索対象の文字列 |
| pattern | パターン | なし | 検索する文字列パターン |
| start | 検索開始位置 | 1 | 検索を開始する文字の位置 |
| match | 一致番号 | 1 | 検索開始位置から何番目の一致箇所を返すか |
| plain | プレーンフラグ | false |
|
| nomatch | エラー出力 | なし | 何もマッチしなかったときに返す文字列 何も指定しないとエラーを返す(既定) |
検索開始位置・一致番号には負の数を指定することも可能です。その場合、後ろから数えます。
パターンにキャプチャがある場合はそのキャプチャを返します。
matchかstart引数が範囲外の場合、エラーを返します。パターンが見つからなかった場合はnomatchを指定していなければエラーを返します。また、ignore_errors=trueを指定した場合、いずれのエラーも返さず、代わりに空の文字列を返します。
Luaパターンの詳細はScribunto patternsとScribunto Unicode string patternsをご参照ください。
例:
{{#invoke:String|match| abc123def456 |%d+}}→ 123{{#invoke:String|match|s= abc123def456 |pattern= %d+ }}→ 123{{#invoke:String|match| abc123def456 |%d+|6}}→ 23{{#invoke:String|match|s= abc123def456 |pattern= %d+ |start= 6 }}→ 3{{#invoke:String|match|s= abc123def456 |pattern= %d+ |start= 6 |match= 2 }}→ 456{{#invoke:String|match|s= abc123%d+ |pattern= %d+ }}→ 123{{#invoke:String|match|s= abc123%d+ |pattern= %d+ |plain= true }}→ %d+{{#invoke:String|match|s= abc |pattern= %d }}→ モジュールStringのエラー: Match not found{{#invoke:String|match|s= abc |pattern= %d |nomatch= No numeric characters in string }}→ No numeric characters in string
pos
文字列の中から指定された位置にある文字を返します。 <syntaxhighlight lang="moin">モジュールStringのエラー: String index out of range </syntaxhighlight> もしくは <syntaxhighlight lang="moin">モジュールStringのエラー: String index out of range </syntaxhighlight>
| 引数 | 内容 | 既定値 | 説明 |
|---|---|---|---|
| target | 文字列 | なし | 検索対象の文字列 |
| pos | 位置 | なし | 返す文字の位置 |
位置には負の数を指定することも可能です。その場合、文字列の後ろから数えます。例えば、「-1」は文字列の最後の文字です。
posが0または文字列の長さより大きい場合、エラーを返します。
例:
{{#invoke:String|pos| abcdefghi | 4 }}→ c{{#invoke:String|pos|target= abcdefghi |pos= 4 }}→ d
str_find
この関数は{{Str find}}を実装します。この関数が提供されるのは既存のテンプレートを維持するためであり、新しいコードやテンプレートには推奨されません。新しいコードには代わりにfind関数を使用してください。"source"の文字列の中から"target"のパターンを検索し、その位置を返します。パターンが見つからない場合は-1を返します。
なお、"target"の文字列が空白か指定されていない場合、1を返します。これは一般的とは言えない挙動であり、特別に扱う必要があります。
<syntaxhighlight lang="moin"> -1 </syntaxhighlight> もしくは <syntaxhighlight lang="moin"> -1 </syntaxhighlight>
例:
{{#invoke:String|str_find| abc123def }}→ 1{{#invoke:String|str_find|source= abc123def }}→ 1{{#invoke:String|str_find| abc123def |123}}→ 5{{#invoke:String|str_find|source= abc123def |target= 123 }}→ 4
find
文字列の中からパターンを検索しその位置を返します。 <syntaxhighlight lang="moin"> 0 </syntaxhighlight> もしくは <syntaxhighlight lang="moin"> 0 </syntaxhighlight>
| 引数 | 内容 | 既定値 | 説明 |
|---|---|---|---|
| source | 文字列 | なし | 検索対象の文字列 |
| target | パターン | なし | 検索する文字列パターン |
| start | 検索開始位置 | 1 | 検索を開始する文字の位置 |
| plain | プレーンフラグ | true |
|
最初の文字の位置は1としています。文字列・パターンが指定されていなかったり、もしくは文字列の中にパターンがなかった場合は、0を返します。この関数はUTF-8の文字列にも使えます。
例:
{{#invoke:String|find| abc123def }}→ 0{{#invoke:String|find|source= abc123def }}→ 0{{#invoke:String|find| abc123def |123}}→ 5{{#invoke:String|find|source= abc123def |target= 123 }}→ 4{{#invoke:String|find| abc123def |%d|3|false}}→ 5{{#invoke:String|find|source= abc123def |target= %d |start= 3 |plain= false }}→ 4
replace
パターンと一致する部分を別の文字列で置き換えます。 <syntaxhighlight lang="moin"> 文字列 </syntaxhighlight> もしくは <syntaxhighlight lang="moin"> 文字列 </syntaxhighlight>
| 引数 | 内容 | 既定値 | 説明 |
|---|---|---|---|
| source | 文字列 | なし | 対象の文字列 |
| pattern | パターン | なし | 置換される文字列パターン |
| replace | 置換文字列 | なし | 置換する文字列 何も指定しないとパターンを削除する(既定) |
| count | 置換回数 | なし | 置換する回数 何も指定しないと可能な箇所すべてを置換する(既定) |
| plain | プレーンフラグ | true |
|
例:
"{{#invoke:String|replace| abc123def456 |123|N}}"→ " abcNdef456 ""{{#invoke:String|replace|source= abc123def456 |pattern= 123 |replace= N }}"→ "abcNdef456""{{#invoke:String|replace| abc123def456 |%d+|N|1|false}}"→ " abcNdef456 ""{{#invoke:String|replace|source= abc123def456 |pattern= %d+ |replace= N |count=1 |plain= false }}"→ "abcNdef456""{{#invoke:String|replace|source= abc123def456 |pattern= %d+ |replace= N |plain= false }}"→ "abcNdefN"
rep
Luaのstring.repをテンプレートにも使えるようにするための関数であり、文字列を指定回数返します。 <syntaxhighlight lang="moin">モジュールStringのエラー: function rep expects a number as second parameter, received "繰り返し回数" </syntaxhighlight>
| 引数 | 内容 | 既定値 | 説明 |
|---|---|---|---|
| source | 文字列 | なし | 対象の文字列 |
| count | 繰り返し回数 | なし | 対象の文字列を繰り返す回数 |
例:
"{{#invoke:String|rep|hello|3}}"→ "hellohellohello""{{#invoke:String|rep| hello | 3 }}"→ " hello hello hello "
関連項目
- モジュール:String2 - ほかの文字列処理用関数
- モジュール:StringFunc
- モジュール:Str endswith
- モジュール:Ustring
- mw:Extension:Scribunto/Lua reference manual#Ustring library - 使用しているメタ関数
- mw:Extension:Scribunto/Lua_reference_manual#Patterns - Luaパターン
- mw:Extension:Scribunto/Lua_reference_manual#Ustring_patterns - UTF-8関連の正規表現