特殊な指定をするメタ文字2
メタ文字のエスケープ
\○ |
---|
意味:メタ文字のエスケープ ○を普通の文字として指定 |
htmlでは、タグの表記に用いられている&や>はそのままでは表示できません。&や>と記述します。
同様に、正規表現でも、メタ文字として使用されている「.」や、「*」、「[」を普通の文字として検索する場合、そのままでは指定できません。そのメタ文字の前に\(バックスラッシュ)を置く必要があります。
\. |
こうすることにより、普通は指定できないメタ文字を指定することができます。このように、文字そのものを指定するために\をつけることを「メタ文字をエスケープする」といいます。
しかしながら、メタ文字が多数ある文章をエスケープするのは面倒な作業です。たとえば以下のような例を考えてみましょう。
(2.4)*(3.21)*(1.82)=14.02128 |
これは、よくプログラミングの際に用いられる様式で書いた数式です。プログラミング言語では、かけ算の×記号は*と記述されます。この数式の中には、 (、)、.、*というメタ文字が使用されています。これを\でエスケープしてきちんと表示するには、
\(2\.4\)\*\(3\.21\)\*\(1\.82\)=14\.02128 |
---|
このように書かなくてはなりません。非常に読みにくく、\を書いているときに間違いかねません。そこで、一部の正規表現には範囲内の文字列をそのまま指定させる「引用記号」という機能があります。
\Q~\E |
---|
意味:引用記号 範囲内の文字列をそのまま指定 |
これを使用すると、メタ文字に一つ一つに\をつけるより、はるかに見やすく、また書き間違いも少なくなります。
\Q(2.4)*(3.21)*(1.82)=14.02128\E |
---|
[ -~]+ |
---|
意味:数式の取り出し |
上記のように指定すると、対象文字列の中の数式のみを取り出すことができます。引用記号との違いは、引用記号の場合は指定した数式しか取り出すことができませんが、この構文を使用すると、検索対象文字列内にあるすべての数式を一度に取り出せます。
最初の”[”のすぐ後ろに半角スペースがあることに注意してください。