Documentation/Calc 関数/REGEX
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Donate
Function name:
REGEX
Category:
Text
Summary:
テキスト文字列を正規表現と照合し、引数の設定に応じて、一致したテキストを抽出または置換します。
ヘルプ/REGEX
Syntax:
REGEX(テキスト; 正規表現パターン[; [置換文字列][; フラッグ または 出現箇所]])
Returns:
引数の値に応じて、次のいずれかを返します。各戻り値の出現の詳細 (例題付き)については、以下の #Additional details: セクションを参照してください。
- 元のテキストから抽出された部分文字列のコピー。
- 1つまたは複数の一致を置換することによって変更された、元のテキストのコピー。
- 変更されていない、元のテキストのコピー。
- 該当する値がないというエラー (#N/A)。
Arguments:
テキスト は、正規表現パターン を適用する元のテキストであるテキスト文字列 (引用符内)、またはテキスト文字列を含むセルへの参照です。
正規表現パターン は、テキストに適用される正規表現であるテキスト文字列 (引用符内)、またはテキスト文字列を含むセルへの参照です。
置換文字列 は、テキスト文字列 (引用符内)、またはテキスト文字列を含むセルへの参照で、使用される置換テキストです。 置換文字列 を空の文字列に設定すると、一致した文字を削除するメカニズムとして使用できます。
フラッグ または 出現箇所 は、次のいずれかのオプションです:
- 単一の小文字 "g" で構成される文字列、またはそのようなテキスト文字列を含むセルへの参照。 "g" は、グローバル置換を選択するために使用され、すべての一致に置換が適用されます。
- 使用される特定の一致を示す、負でない整数、またはそのような整数を含むセルへの参照。
- 正規表現パターン が有効な正規表現でない場合、REGEX は無効な引数エラー (エラー:502) の表示になります。
- フラッグ または 出現箇所 が一つの小文字 "g"以外の文字を含む数値以外のテキスト文字列である場合、 REGEX は無効な引数エラー (エラー:502)の表示になります。
- フラッグ または 出現箇所 が負の数値の場合、 REGEX は無効な引数エラー (エラー:502) の表示になります。
- フラッグ または 出現箇所 が負ではない整数以外の数値の場合、REGEX はその floor 値に変換され適応されます。
- 置換文字列 が省略され、 フラッグ または 出現箇所 が "g" に設定されている場合、 REGEX は、 置換文字列 と フラッグ または 出現箇所 の両方が省略されたかのように動作します。
Additional details:
REGEX 関数に特有の詳細
- REGEX 関数の操作は、 ▸ ▸ ▸ (または macOS では ▸ ▸ ▸ ) ダイアログの "数式のワイルドカード" 領域で現在選択されているオプションには依存しません。
- 初期のデフォルトでは、 REGEX で大文字と小文字を区別した一致が使用されますが、これは ICU 正規表現内のフラグを使用して変更できます。たとえば、
=REGEX("test";"(?i)"& "TEST")
のように、正規表現内に "(?i)" を含めると、大文字と小文字を区別しない一致に変更されます。 - 引数に渡された元の文字列 Text は、REGEX によって行われた置換の影響を受けません。– 変更は、返される文字列にのみ反映されます。
- REGEX は、関数に渡される引数に応じて、5つの異なる "モード" のいずれかで動作すると考えると理解しやすいでしょう。これらのモードは次のとおりです。:
- REGEX(テキスト; 正規表現パターン) は、テキスト内の正規表現パターンの最初の一致を抽出します。この単純な形式は、文字列が事前定義されたパターン (電話番号、電子メールアドレス、郵便番号など) に準拠しているかどうかをチェックするのに役立ちます。
- 数式
=REGEX("LibreOffice Calc"; ".c")
は、先頭に他の文字が続く小文字の "c" の最初の出現を抽出し、文字列 "ic" を返します。 - 数式
=REGEX("LibreOffice Calc"; "Z")
は、一致するものが見つからず、 #N/A を返します。
- 数式
- REGEX(テキスト; 正規表現パターン; 置換文字列)は、テキスト の 正規表現パターン の最初の一致を 置換文字列に置き換えます。一致がある場合、 REGEX rは テキストの変更されたバージョンを返します。一致がない場合、 テキスト は変更されずに返されます。
- 数式
=REGEX("Initialise new variables and optimise your code."; "ise"; "ize")
は、 "Initialize new variables and optimise your code." を返します。 - 数式
=REGEX("LibreOffice Calc"; "Z"; "?")
は、一致するものが見つからず、文字列 "LibreOffice Calc" を変更せずに返します。
- 数式
- REGEX(テキスト; 正規表現パターン; 置換文字列; "g") は、テキスト の 正規表現パターン に一致する文字列をすべて 置換文字列 に置き換えます。一致する文字列がある場合 REGEX は テキストの変更されたバージョンを返します。一致する文字列がない場合、 テキスト は変更されずに返されます。
- 数式
=REGEX("Initialise new variables and optimise your code."; "ise"; "ize"; "g")
は、 "Initialize new variables and optimize your code." を返します。 - 数式
=REGEX("LibreOffice Calc"; "Z"; "?"; "g")
は、一致するものが見つからず、文字列 "LibreOffice Calc" を変更せずに返します。
- 数式
- REGEX(テキスト; 正規表現パターン; ; フラッグ または 出現箇所) は、テキスト 内の 正規表現パターン のn番目の一致を抽出します。 (ここで、n は 出現箇所 引数の値によって指定されます)
- 数式
=REGEX("LibreOffice Calc"; ".c"; ; 1)
は、他の文字が前に付いた小文字の "c" の最初の出現を抽出し、文字列 "ic" を返します。 - 数式
=REGEX("LibreOffice Calc"; ".c"; ; 2)
は、他の文字が前に付いた小文字の "c" の 2 番目の出現を抽出し、文字列 "lc" を返します。 - 数式
=REGEX("LibreOffice Calc"; ".c"; ; 3)
は、一致するものが見つからず、 #N/A を返します。 - 出現箇所 の値 0 は特殊なケースであり、REGEX は、テキスト を未修正のまま返します。
- 数式
- REGEX(テキスト; 正規表現パターン; 置換文字列; 出現箇所) は、テキスト の 正規表現パターン のn番目の一致を 置換文字列 に置き換えます(ここで、n は 出現箇所 引数の値によって与えられます)。 一致がある場合、REGEX は テキスト の変更されたバージョンを返します。一致がない場合、 テキスト は変更されずに返されます。
- 数式
=REGEX("Initialise new variables and optimise your code."; "ise"; "ize"; 1)
は、 "Initialize new variables and optimise your code." を返します。 - 数式
=REGEX("Initialise new variables and optimise your code."; "ise"; "ize"; 2)
は、 "Initialise new variables and optimize your code." を返します。 - 数式
=REGEX("Initialise new variables and optimise your code."; "ise"; "ize"; 3)
は、文字列 "Initialise new variables and optimise your code." を変更せずに返します。 - 出現箇所 の値 0 は特殊なケースであり、 REGEX は、テキスト を未修正のまま返します。
- 数式
Calc の正規表現に関する一般事項
- 正規表現とは、一致させるテキストのパターンを定義する文字列です。より詳細で一般的な背景情報は、Regular expression ページにあります。
- 正規表現は多くのドメインで広く使用されており、様々な正規表現プロセッサが利用可能です。Calc では、International Components for Unicode (ICU) のオープンソース正規表現パッケージ を採用しています。ICU 正規表現の構文の完全な定義を含む詳細については、Regular Expressions のドキュメントを参照してください。
- さらに、LibreOffice のヘルプ・システムは、高水準の 正規表現リスト を提供します。
- Calc の正規表現エンジンは、番号付きキャプチャ・グループ をサポートしています。これにより、一致するサブ範囲を識別し、置換テキスト内で使用できます。括弧は、正規表現のコンポーネントをグループ化し、番号付きキャプチャ・グループを作成するために使用されます。キャプチャ・グループを置換テキストに挿入するには、"$n" 形式を使用します。ここで、"n" はキャプチャ・グループの番号です。
Examples:
Formula | Description | Returns |
---|---|---|
=REGEX("123456ABCDEF"; "[:digit:]"; "Z") | この場合、関数は "Z23456ABCDEF"を返します。最初に一致した数字が "Z" に置き換えられます。 | Z23456ABCDEF |
=REGEX(D1; D2; D3; D4) ここで、セル D1 から D4 には、それぞれ文字列 "123456ABCDEF" ; "[:digit:]" ; "Z" ; "g" が含まれます。 | この場合、関数は "ZZZZZZABCDEF" を返します。すべての数字は "Z" に置き換えられます。 | ZZZZZZABCDEF |
=REGEX("123456ABCDEF"; "[126]"; ""; "g") | この場合、関数は "345ABCDEF" を返します。 "1"、 "2" または "6" が有れば空の文字に置き換えられ、削除されます。 | 345ABCDEF |
=REGEX("axbxcxd"; ".x"; ; 2) | この場合、関数は ".x" の2番目に一致となる "bx" を返します。 | bx |
=REGEX("axbxcxd"; "(.)x"; "$1y"; 2) | この場合、関数は "axbycxd" を返します。 "(.)x" の2番目の一致 (つまり "bx") は、キャプチャされたグループの 1 番目 (つまり "b") とそれに続く "y" に置き換えられます。 | axbycxd |
=REGEX("LibreOffice Calc"; "libreoffice") | この場合、関数は #N/A を返します。デフォルトでは大文字と小文字が区別されるためです。 | #N/A |
=REGEX("LibreOffice Calc"; "(?i)libreoffice") | この場合、 関数は一致を検索して "LibreOffice" を返します。検索フラグ (?i) により、大文字と小文字を区別しない一致に切り替わるからです。 | LibreOffice |
Related LibreOffice functions:
None.
ODF standard:
None
Related (or similar) Excel functions:
None