正規表現ツール |
grep |
PowerGREP |
RegexBuddy |
RegexMagic |
汎用アプリケーション |
EditPad Lite |
EditPad Pro |
言語 & ライブラリ |
Boost |
Delphi |
GNU (Linux) |
Groovy |
Java |
JavaScript |
.NET |
PCRE (C/C++) |
PCRE2 (C/C++) |
Perl |
PHP |
POSIX |
PowerShell |
Python |
R |
Ruby |
std::regex |
Tcl |
VBScript |
Visual Basic 6 |
wxWidgets |
XML Schema |
Xojo |
XQuery & XPath |
XRegExp |
データベース |
MySQL |
Oracle |
PostgreSQL |
当サイトのその他情報 |
はじめに |
正規表現クイックスタート |
正規表現チュートリアル |
置換文字列チュートリアル |
アプリケーションとプログラミング言語 |
正規表現の例 |
正規表現リファレンス |
置換文字列リファレンス |
書籍レビュー |
印刷用 PDF |
当サイトについて |
RSSフィード & ブログ |
かつて REALbasic として知られていた Xojo には、組み込みの RegEx クラスが含まれています。内部的には、このクラスはオープンソースの PCRE ライブラリに基づいています。これは、Xojo 開発者にとって、RegEx クラスが豊富な Perl 互換の正規表現を提供することを意味します。このウェブサイトの正規表現チュートリアルでは、Xojo について明示的に言及していません。チュートリアルで PCRE の正規表現フレーバーについて述べられていることはすべて Xojo にも当てはまります。唯一の例外は、大文字と小文字を区別しない照合モードと「複数行」の照合モードです。PCRE では、これらはデフォルトでオフになっていますが、Xojo ではデフォルトでオンになっています。
Xojo は PCRE の UTF-8 バージョンを使用します。つまり、ファイルやネットワークから取得した非 ASCII データを処理する場合は、Xojo の TextConverter クラスを使用して、文字列を UTF-8 に変換してから RegEx オブジェクトに渡す必要があります。また、TextConverter を使用して、RegEx クラスから返された文字列を UTF-8 からアプリケーションが使用しているエンコーディングに戻す必要があります。
正規表現を使用するには、RegEx クラスの新しいインスタンスを作成する必要があります。正規表現を SearchPattern プロパティに割り当てます。RegExOptions クラスのインスタンスである Options プロパティで、さまざまなオプションを設定できます。
正規表現が特定の文字列と一致するかどうかを確認するには、RegEx オブジェクトの Search メソッドを呼び出し、対象文字列をパラメータとして渡します。このメソッドは、一致が見つかった場合は RegExMatch クラスのインスタンスを返し、一致が見つからなかった場合は Nil を返します。同じ対象文字列で 2 番目の一致を見つけるには、パラメータなしで Search メソッドを再度呼び出します。対象文字列を再度渡さないでください。そうすると、文字列の先頭から検索が再開されます。文字列内のすべての正規表現一致を反復処理するには、Nil を返すまでパラメータなしで Search を呼び出し続けます。
Regex.Search メソッドが一致を見つけると、一致の詳細を RegExMatch オブジェクトに保存します。このオブジェクトには 3 つのプロパティがあります。SubExpressionCount プロパティは、正規表現のキャプチャグループの数に1 を加えた数を返します。たとえば、正規表現(1)(2)の場合、3 を返します。SubExpressionString プロパティは、正規表現またはキャプチャグループによって一致した部分文字列を返します。SubExpressionString(0) は正規表現全体の一致を返し、SubExpressionString(1) から SubExpressionString(SubExpressionCount-1) はキャプチャグループの一致を返します。SubExpressionStartB は、プロパティにパラメータとして渡す数値インデックスに応じて、正規表現全体またはキャプチャグループのいずれかの一致の開始のバイトオフセットを返します。
RegExOptions クラスには、正規表現のさまざまなオプションを設定するための 9 つのプロパティがあります。
'Prepare a regular expression object
Dim myRegEx As RegEx
Dim myMatch As RegExMatch
myRegEx = New RegEx
myRegEx.Options.TreatTargetAsOneLine = True
myRegEx.SearchPattern = "regex"
'Pop up all matches one by one
myMatch = myRegEx.Search(SubjectString)
While myMatch <> Nil
MsgBox(myMatch.SubExpressionString(0))
myMatch = myRegEx.Search()
Wend
文字列内の正規表現一致を見つけることに加えて、一致を別の文字列に置き換えることもできます。これを行うには、RegEx オブジェクトの ReplacementPattern プロパティを設定してから、Replace メソッドを呼び出します。Replace メソッドにパラメータとしてソース文字列を渡します。このメソッドは、置換が適用された文字列のコピーを返します。RegEx.Options.ReplaceAllMatches プロパティは、最初の正規表現一致のみを置換するか、すべての正規表現一致を置換するかを決定します。
ReplacementPattern 文字列では、$&, $0または\0を使用して、正規表現全体の一致を置換に挿入できます。$1または\1を使用して、最初のキャプチャグループの一致を、$2または\22 番目の一致などを表します。
置換の方法をより詳細に制御する場合は、上記のコードスニペットのように正規表現一致を反復処理し、各一致に対して RegExMatch.Replace メソッドを呼び出すことができます。このメソッドは実際には何も置換しないため、誤った名前が付けられています。代わりに、一致とキャプチャグループへのすべての参照が置換された RegEx.ReplacementPattern 文字列を返します。この結果を使用して、自分で置換を行うことができます。このメソッドは、正規表現一致ごとにキャプチャグループの組み合わせを収集する場合にも役立ちます。
| クイック スタート | チュートリアル | ツール & 言語 | 例 | リファレンス | 書籍 レビュー |
| grep | PowerGREP | RegexBuddy | RegexMagic |
| EditPad Lite | EditPad Pro |
| Boost | Delphi | GNU (Linux) | Groovy | Java | JavaScript | .NET | PCRE (C/C++) | PCRE2 (C/C++) | Perl | PHP | POSIX | PowerShell | Python | R | Ruby | std::regex | Tcl | VBScript | Visual Basic 6 | wxWidgets | XML Schema | Xojo | XQuery & XPath | XRegExp |
| MySQL | Oracle | PostgreSQL |
ページ URL: https://regular-expressions.dokyumento.jp/realbasic.html
最終更新日: 2021年8月12日
サイト最終更新日: 2024年3月15日
Copyright © 2003-2024 Jan Goyvaerts. All rights reserved.