Java 正規表現シリーズ -- 文字列から文字列または数値を抽出します

オリジナルURL: Java正規表現シリーズ--Stringsから文字列または数値を抽出_ITナイフ抜刀ブログ-CSDNブログ

導入

この記事では、Java が正規表現を使用して文字列から目的の内容 (文字列や数値など) を抽出する方法を例を使用して紹介します。

例 1: 異なるコンテンツを一度抽出する

必要

文字列から aa で始まる単語を検索し、その後の数字を見つけます。

コード

package com.example.a;

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

public class Demo {
    public static void main(String[] args) {
        String line = "This order was aabbcc placed for QT3000! OK?";

        String regex = "(\\D*)(\\s+)(aa\\S+)(\\D*)(\\d+)(.*)";

        // 创建 Pattern 对象
        Pattern pattern = Pattern.compile(regex);

        // 现在创建 matcher 对象
        Matcher m = pattern.matcher(line);
        if (m.find()) {
            System.out.println("group0: " + m.group(0));
            System.out.println("group1: " + m.group(1));
            System.out.println("group2: " + m.group(2));
            System.out.println("group3: " + m.group(3));
            System.out.println("group3: " + m.group(4));
            System.out.println("group3: " + m.group(5));
            System.out.println("group3: " + m.group(6));
        }
    }
}

結果

group0: This order was aabbcc placed for QT3000! OK?
group1: This order was
group2:  
group3: aabbcc
group3:  placed for QT
group3: 3000
group3: ! OK?

group は対応するデータ グループを表し、正規表現の各括弧はグループとしてカウントされます。

group0 は元のデータに対応し、group2 はスペースです。 

例 2: 同じコンテンツを複数回抽出する

必要

会社の従業員番号は LM に数字を加えたものです。文字列から従業員番号を見つけます。

コード

package com.example.a;

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

public class Demo {
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("(LM\\d+)");
        String str = "张三[LM89652] 李四[LM12365] 王五[LM56856]";
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            System.out.println(matcher.group(1));
        }
    }
}

結果

LM89652
LM12365
LM56856

Matcherの詳しい説明

おすすめ

転載: blog.csdn.net/feiying0canglang/article/details/128071693
おすすめ