正規表現とは正規表現で用意されている特殊な文字や構文を使って作成したパターンを使い、対象の文字列とマッチするかどうか調べるための方法です。正規表現を使うことで「ABCDE」など指定した文字列と完全に一致しているかどうかを調べるだけでなく、「A」で始まり「E」で終わる 5 文字の文字列などのようなより柔軟で複雑なパターンを定義することができます。ここでは Java における正規表現の使い方について解説します。 ※ 正規表現の基本的な考え方については「正規表現入門」もあわせてご参照ください。
![Java正規表現の使い方](https://cdn-ak-scissors.b.st-hatena.com/image/square/96aa639f8f58041d394e9f9a26a486b24f6de404/height=288;version=1;width=512/https%3A%2F%2Fwww.javadrive.jp%2Fstart%2Fregex%2Fimg%2Fp0-0.png)
一般的な正規表現を使ったツールでは中級編までの内容がそのまま使えると思います。 たとえばSedやAWKならば問題なく使えます。 ここではPerl等のかなり強力なツールでしか使えないような表現を説明します。 もちろん、K2Editorでも使える表現です。 以前出てきた繰り返し表現では、繰り返し回数を指定する事はできませんでした。 たとえば、aの3回繰り返しを検索したい場合、 「a+」では3回繰り返し以外でもマッチしてしまいます。 ですから、「aaa」としなければなりません。 拡張された表現では繰り返し回数を指定できます。 基本的な書式は「{n,m}」です。 nが最小回数、mが最大回数です。 最大と最小が同じ場合、つまり固定回数の時には 「{n}」と書きます。 aの3回繰り返しは 「a{3}」と書けます。 2回以上5回以下の繰り返しは 「{2,5}」と書けます。 5回以上の繰り返しは 「{5,
はじめに「はじめての正規表現」がホッテントリ入りしていますが、 導入としては、何に使うのかがわかりやすくて良いのではないかと思います。 あれを見て、基本機能をまとめてみたくなったので、正規表現の基本的な機能について書いてみます。 (正規表現が初めてという人は「はじめての正規表現」を先に見たほうがいいと思います。) 例では「検索」か「置換」をするものとして話を進めていきます。 (「はじめての正規表現」が実例を中心にしたのに対して、こちらは機能を中心に書きます) 正規表現は、プログラミング言語やその他のツールなど、それぞれで微妙な違い(方言)があるので、その点には注意が必要です。 (表記法が違ったり、ここに紹介する機能がサポートされていなかったり、逆に紹介していない機能をサポートしていたりする場合があります) メタ文字とリテラル文字正規表現には、メタ文字とリテラル文字というものがあります。 メ
先読み正規表現について、この前やっと理解できた。Rubyリファレンスマニュアルではこんな説明になっている。 (?= ) 先読み(lookahead)。パターンによる位置指定(幅を持たない) (?=re1)re2 という表現は、re1 と re2 両方にマッチするものにマッチする正規表現です。 re1(?=re2) という表現は、後に re2 とマッチする文字列が続く、正規表現 re1 です。 p /foo(?=bar)/ =~ "foobar" # => 0 p $& # => "foo" (bar の部分の情報はない) (?! ) 否定先読み(negative lookahead)。パターンの否定による位置指定(幅を持たない) (?!re1)re2 という表現は、re1 にマッチしないが re2 にはマッチする正規表現です。 # 000 を除く 3 桁の数字 re = /(?!000)\
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く