java正则表达式练习-涉及分组group()

这个程序 一开始贴上回复的时候 忘记关了数据流 教训教训。

通过这个程序 复习了一下正则表达式 对分组又有了进一步的了解 ^_^。

 

 

 

/*
input1.txt文件文件内容如下: 
1 book at 12.49 
1 music CD at 14.99 
1 chocolate bar at 0.85 

我现在要做的是: 
读取文件的每一行,然后将每一行的开始数字、name、at之后的数字取出来 
例: 
读取行 1 music CD at 14.99 
结果为 ID = 1; name = music CD; price = 14.99; 
我对正则表达式一点也不懂,有详细代码最好! 
望各位指点!(急) 
 
 * 
*/

 


package  test1;
import  java.util.regex. * ;
import  java.io. * ;


public   class  Test2 
{

    
/**
     * 
@param args
     
*/

    
public static void main(String[] args) 
    
{
        String regex
="(/d+)/s(.*?)at/s([0-9/.])+";
        
//String regex="(/d+) (.*?) at ([0-9/.])+";
        Pattern pt=Pattern.compile(regex);
         
        
//读取文件数据
        try
        
{
            FileInputStream fis
=new FileInputStream("test.txt");
            InputStreamReader isr
=new InputStreamReader(fis);
            BufferedReader br
=new BufferedReader(isr);
            
            String s;
            
while((s=br.readLine())!=null)
            
{
                Matcher mt
=pt.matcher(s);
                
while(mt.find())
                
{
                 
                     
                     
                    System.out.println(
"ID="+mt.group(1));
                    System.out.println(
"Name="+mt.group(2));
                    System.out.println(
"Price="+mt.group(3));
                    System.out.println();
                 
                }

            }

            
            br.close();
            isr.close();
            fis.close();
                
            
        }

        
catch(FileNotFoundException e)
        
{
            e.printStackTrace();
        }

        
catch(Exception e)
        
{
            e.printStackTrace();
        }

    }


}

 

 

你可能感兴趣的:(java)