クイック スタート
チュートリアル
ツール & 言語
リファレンス
書籍 レビュー
置換テキストチュートリアル
はじめに
文字
印字不可能な文字
一致したテキスト
後方参照
一致コンテキスト
大文字小文字変換
条件
このサイトについて
はじめに
正規表現クイックスタート
正規表現チュートリアル
置換文字列チュートリアル
アプリケーションとプログラミング言語
正規表現の例
正規表現リファレンス
置換文字列リファレンス
書籍レビュー
印刷可能なPDF
このサイトについて
RSSフィード & ブログ

印字不可能な文字

ほとんどのアプリケーションやプログラミング言語では、印字不可能な文字を簡単に入力できるように、置換テキストに特別な構文をサポートしていません。アプリケーションのエンドユーザーである場合、キーボードで入力できない文字を入力するには、Windowsの文字コード表などのアプリケーションを使用する必要があります。プログラミングの場合、ソースコード内で文字列定数として置換テキストを指定できます。その後、プログラミング言語の文字列定数の構文を使用して、印字不可能な文字を指定できます。

Just Great Softwareアプリケーションは例外です。いくつかの一般的な制御文字を入力するために、特別なエスケープシーケンスを使用できます。以下を使用します。\tをタブ文字(ASCII 0x09)に置換し、\rをキャリッジリターン(0x0D)に、\nをラインフィード(0x0A)に。Windowsテキストファイルは\r\nを使用して行を終端しますが、UNIXテキストファイルは\n.

Pythonも、文字列定数でのサポートに加えて、置換テキストで上記のエスケープシーケンスをサポートしています。PythonとBoostは、これらのよりエキゾチックな非印字文字もサポートしています。\a(ベル、0x07)、\f(フォームフィード、0x0C)および\v(垂直タブ、0x0B)。

Just Great SoftwareアプリケーションとBoostは、16進エスケープもサポートしています。\x{FFFF}を使用して、Unicode文字を挿入できます。ユーロ通貨記号は、UnicodeコードポイントU+20ACを使用します。キーボードで入力できない場合は、置換テキストに\x{20AC}を使用して挿入できます。JGsoftアプリは\u20ACもサポートしています。127のASCII文字については、\x00から\x7Fまで使用できます。EditPadまたはPowerGREPで8ビットコードページを使用するファイルを使用する場合、または8ビット文字文字列でBoostを使用している場合は、\x80から\xFFを使用して、これらの8ビットコードページから文字を挿入することもできます。

Pythonは、文字列定数では\xFFおよび\uFFFFをサポートしていますが、置換テキストの構文では16進エスケープをサポートしていません。

正規表現の構文と文字列の構文

多くのプログラミング言語では、ソースコード内のリテラル文字列の構文で、印字不可能な文字のエスケープをサポートしています。その後、そのようなエスケープは、コンパイラーによって実際の文字に変換されてから、文字列が検索と置換の関数に渡されます。検索と置換の関数が同じエスケープをサポートしていない場合、ソースコード内でリテラル文字列として指定された正規表現と、ファイルから読み取られたり、ユーザー入力から受信したりした正規表現とで、見かけ上動作が異なる可能性があります。たとえば、JavaScriptのstring.replace()関数は、これらのエスケープをサポートしていません。ただし、JavaScript言語は\n, \x0A\u000Aのようなエスケープを文字列リテラルでサポートしています。したがって、JavaScriptでアプリケーションを開発する場合、\nは、置換テキストをソースコードに文字列リテラルとして追加した場合にのみ、改行として解釈されます。その後、JavaScriptインタープリターは\nを変換し、string.replace()関数は実際の改行文字を確認します。コードがファイルから同じ置換テキストを読み取る場合、string.replace()関数は\nを確認し、それをリテラルバックスラッシュとリテラルnとして扱います。