android開發(22)使用正則表達式 。從一個字符串中找出數字,多次匹配。


我們嘗試使用在 android 下使用正則,看起來很簡單,代碼如下:

package com.example.test111;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String res = "";
        String str1 = "1234567890,1234567891";
        
        String str2 = "青雲店鎮\n1115103001\r北京日雜\n北200米路西\ncpp\n80285135\n農葯";
        String str3 = "1234567890\n采育\n1115104004\n大興\n13661175819\n北京市\n種子、化肥";
        String str4 = "xfdsfds";
        
        res = test(str1);
                
        res = test(str2);
                
        res = test(str3);
                
        res = test(str4);
    }

    private String test(String barcodeDesc) {
        Pattern p;
        p = Pattern.compile("\\d{10}");//在這里,編譯 成一個正則。
        Matcher m;
        m = p.matcher(barcodeDesc);//獲得匹配
        String res = "";
        
        while(m.find()){ //注意這里,是while不是if
            String xxx = m.group();
            System.out.println("res ="+xxx);
        }
        return res;
    }
    
}

代碼中,我想獲得多個匹配的結果,當是第一次寫的 "if(m.find)",總是只能獲得一個匹配的數字。查了若干資料,無意中讀了一段代碼才發現這個差別。一定要注意了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM