PatternとMatch


一般的には、機能が限られたStringよりも、強力な正規表現オブジェクトを構築したいと考えています。java.util.regexパッケージを導入して、static Pattern.com mpile()方法であなたの正規表現をコンパイルすればいいです。これはあなたのStringタイプの正規表現に基づいてpatternオブジェクトを生成します。次に、検索したい文字列をPatternオブジェクトのmatcherに入力します。matchcer()はMatchオブジェクトを生成します。彼は多くの機能を持っています。彼のrepalaceAllメソッドは、そのすべての整合部分をあなたが入力したパラメータに置き換えることができます。
      一例として、次のクラスは正規表現をテストするために使用できます。入力した文字列にマッチするかどうか確認してください。最初の操作台は本を拭いてマッチング入力を検索する文字列です。Unix/Linuxでは、コマンドラインの正規表現は引用符で囲まれていなければなりません。このプログラムは正規表現をテストする時に役立ちます。特に、それらがあなたが期待しているマッチング機能を持っているかどうかを検証したい時に役立ちます。

//:strings/TestRegulaarExpression.java
//Allows you to easily try out regular expressions.
//{Args:abcabcabcdefabs "abc+" "(abc)+" "(abc){2,}"}

import java.util.regex.*;

public class TestRegularExpression{
	public static void main(String[] args){

		if(args.length<2){
			System.out.println("Usage:
java TestregularExpression "+"characterSequence regularExpression+"); } System.out.println("Input:\""+args[0]+"\""); for(String arg:args){ System.out.println("RegularExpression:\""+arg+"\""); Pattern p=Pattern.compile(arg); Matcher m=p.matcher(args[0]); while(m.find()){ System.out.println("Match \""+m.group()+"\" at position "+m.start()+"-"+(m.end()-1)); } } } }
実行結果は:
D:\>java TestReglar Expression abcabcabcdefabc“abc”+“(abc)+”(abc){2,}
Input:「abcabcdefabc」
Reglar Expression:「abcabcdefabc」
Match「abcabcdefabc」at position 0-14
Reglar Expression:「abc+」
Match「abc」at position 0-2
Match「abc」at position 3-5
Match「abc」at position 6-8
Match「abc」at position 12-14
Reglar Expression:「(abc)+」
Match「abcabcabc」at position 0-8
Match「abc」at position 12-14
Reglar Expression:「(abc){2,}」
Match「abcabcabc」at position 0-8
       Patternオブジェクトはコンパイル後の正規表現を表します。この例を測ると、コンパイルされたPattern上のmatcher()方法を使って、入力文字列を加えて、額から一緒にmatcherオブジェクトを作成しました。それと同時に、Pattern類はstatic方法を提供しました。
String regex,CharSequence input
この方法は、regexがCharSequenceタイプ全体のinputパラメータに一致するかどうかを確認するために使用される。年以降のpatternオブジェクトは、それ以外にもsplit()の方法を提供しています。彼はregexにマッチしたところから入力した文字列を分割し、分割したサブ文字列String配列に戻ります。
      Pattrern.marthder()メソッドを呼び出して、文字列パラメータを入力して、Matchオブジェクトを得ます。Match上の方法を使って、様々な種類のマッチが成功したかどうかを判断できます。
bootlean matches()
bootlean lookingAt()
bootlean find();
bootan find(int start)
ここでは、matches()メソッドを使用して、入力文字列全体が正しい正規表現と一致するかどうかを判断し、lookingAt()は、文字列全体の開始部分がモードにマッチするかどうかを判定します。
他の文と表現を入力すると、次のような結果が出ます。
D:\>java TestReglar Expression Java now has reglar expression^Java\Breg.*  sですか
s*s+s{4}s{1}.s{0,3}
Input:「Java」
Reglar Expression:「Java」
Match「Java」at position 0-3
Reglar Expression:「now」
Reglar Expression:「has」
Reglar Expression:「reglar」
Reglar Expression:「expression」
Reglar Expression:「Java」
Match「Java」at position 0-3
Reglar Expression:\\Breg.*"
Reglar Expression:「s?」
Match""at position 0-1
Match""at position 1-0
Match""at position 2-1
Match""at position 3-2
Match""at position 4-3
Reglar Expression:「ソフト」
Reglar Expression:「Song Analysis」
Reglar Expression:「System Volume Information」
Reglar Expression:「s+」
Reglar Expression:“s{4}”
Reglar Expression:“s{1}”
Reglar Expression:「s{0,3}」
Match""at position 0-1
Match""at position 1-0
Match""at position 2-1
Match""at position 3-2
Match""at position 4-3
これらはどうやって現れましたか?
Reglar Expression:「ソフト」
Reglar Expression:「Song Analysis」
Reglar Expression:「System Volume Information」