
正規表現
westkingwy
这个作者很懒,什么都没留下…
展开
-
正規表現の利用方法
まず正規表現をどのような時に使用するのかを簡単に確認しておきます。 ある文字列が他の文字列と一致するかどうか調べるには、Stringクラスで定義されているequalsメソッドを使います。equalspublic boolean equals(Object anObject)この文字列と指定されたオブジェクトを比較します。引数が null でなく、このオブジェクトと同じ文字シーケン转载 2012-07-28 18:16:46 · 1189 阅读 · 0 评论 -
文字列の末尾(¥Z, ¥z)
文字列の末尾の位置にマッチするパターンを記述するにはメタ文字の1つである"¥Z"を使います。書式は次の通りです。"パターン¥Z""パターン¥z"パターンには"¥Z"又は"¥z"を除いたパターンを記述します。"$"が行の末尾にマッチしたのに対して"¥Z"及び"¥z"は文字列の末尾にマッチします。その為、ターゲット文字列の中に行末文字が含まれていてもいなくても、常に文字列の行末位置转载 2012-07-28 23:15:12 · 592 阅读 · 0 评论 -
パターンの作成
正規表現を利用する上でまず行うことはパターンを作成することです。パターンとは何にマッチさせるのかを定義したものと考えて下さい。例えば"2009"という4文字が含まれているかどうか調べたい場合もありますし、"color"という5文字が先頭から現れるかどうか調べたい場合もあります。この調べたい条件を文字列として表します。String regex = "abc";上記の場合は"abc"とい转载 2012-07-28 18:24:18 · 538 阅读 · 0 评论 -
行の先頭(^)
特定の文字ではなく行の先頭という位置にマッチするパターンを記述するにはメタ文字の1つである"^"を使います。書式は次の通りです。"^パターン"パターンには"^"を除いたパターンを記述します。考え方としてはパターンが"abc"だった場合、ターゲット文字列の中に"abc"という文字列が存在するかどうかを調べますが、パターンが"^abc"だった場合にはターゲット文字列の中に「行の先頭」转载 2012-07-28 22:58:35 · 1453 阅读 · 0 评论 -
行末記号
ターゲット文字列は1行だけではなく複数の行から構成される場合があります。正規表現を利用する場合、ターゲット文字列の中に次の文字または文字列が現れた時に行末記号として扱われます。改行文字 ('¥n')直後に改行文字が付いたキャリッジリターン文字 ("¥r¥n")単独のキャリッジリターン文字 ('¥r')次行文字 ('¥u0085')行区切り文字 ('¥u2028')段落区切り文字 ('转载 2012-07-28 22:54:09 · 1359 阅读 · 0 评论 -
文字列の先頭(¥A)
文字列の先頭の位置にマッチするパターンを記述するにはメタ文字の1つである"¥A"を使います。書式は次の通りです。"¥Aパターン"パターンには"¥A"を除いたパターンを記述します。"^"が行の先頭にマッチしたのに対して"¥A"は文字列の先頭にマッチします。その為、ターゲット文字列の中に行末文字が含まれていてもいなくても、常に文字列の先頭位置にだけマッチします。具体的な例で考えて转载 2012-07-28 23:12:15 · 1077 阅读 · 0 评论 -
マッチャを作成しターゲット文字列にマッチさせる
パターンオブジェクトを作成したら、次はターゲットとなる文字列を対象にしてマッチするかどうかを調べます。この時に使用するのがマッチャです。マッチャはパターンを使ってターゲットの文字列に対して様々な操作を行うオブジェクトです。マッチャはjava.util.regex.Matcherクラスで定義されています。このクラスはコンストラクタは用意されておらず、Patternクラスで定義されているmatch转载 2012-07-28 18:35:44 · 1149 阅读 · 0 评论 -
行の末尾($)
行の先頭と同じく行の末尾という位置にマッチするパターンを記述するにはメタ文字の1つである"$"を使います。書式は次の通りです。"パターン$"パターンには"$"を除いたパターンを記述します。考え方としてはパターンが"abc"だった場合、ターゲット文字列の中に"abc"という文字列が存在するかどうかを調べますが、パターンが"abc$"だった場合にはターゲット文字列の中に"abc"+「转载 2012-07-28 23:08:57 · 734 阅读 · 0 评论 -
パターンの中のエスケープ処理
パターンを表す文字列の中には任意の文字を記述することが出来ますが、特殊な用途で使用される文字にはエスケープ処理が必要となります。¥ * + . ? { } ( ) [ ] ^ $ - |これらの文字はパターンの中で使用されると特別な意味を持ちます。そこで単なる文字として扱いたい場合には「¥」記号を使ってエスケープ処理を行います。例えば次のように記述します。¥¥¥*¥|"¥*转载 2012-07-28 22:50:52 · 874 阅读 · 0 评论 -
ターゲット文字列に繰り返しマッチ
前のページで確認したとおり、ターゲットの文字列にパターンを適用しマッチしているかどうか調べるにはMatcherクラスで定義されているfindメソッドを使います。例えば次のように記述します。String str = "Tomato is 100yen, Lemon is 80yen.";String regex = "¥¥d.+?yen";Pattern p = Pattern.comp转载 2012-07-28 19:54:52 · 653 阅读 · 0 评论 -
単語境界/非単語境界(¥b, ¥B)
文字列の中の単語の境界にマッチするパターンを記述するにはメタ文字の1つである"¥b"を使います。書式は次の通りです。"¥bパターン""パターン¥b"パターンには"¥b"を除いたパターンを記述します。単語の境界というのは、単語を構成する文字(a-z、A-Z、0-9、_、Unicode文字)とそうでない文字との境目のことです。次の例を見て下さい。How are you?上转载 2012-07-28 23:17:24 · 1517 阅读 · 0 评论