第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java正則表達(dá)式匹配計數(shù)

java正則表達(dá)式匹配計數(shù)

偶然的你 2019-08-28 09:22:30
java正則表達(dá)式匹配計數(shù)假設(shè)我有一個文件,該文件包含:HelloxxxHelloxxxHello我編譯一個模式來尋找'你好'Pattern pattern = Pattern.compile("Hello");然后我使用輸入流來讀取文件并將其轉(zhuǎn)換為String,以便可以對其進(jìn)行重新編碼。一旦匹配器在文件中找到匹配項,它就表明了這一點(diǎn),但它沒有告訴我它找到了多少匹配項; 只是它在String中找到了一個匹配項。因此,由于字符串相對較短,并且我使用的緩沖區(qū)是200字節(jié),因此它應(yīng)該找到三個匹配項。但是,它只是簡單地說匹配,并沒有向我提供有多少匹配的計數(shù)。計算String中發(fā)生的匹配數(shù)的最簡單方法是什么。我已經(jīng)嘗試了各種for循環(huán)并使用matcher.groupCount(),但我無處可去。
查看完整描述

3 回答

?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗 獲得超9個贊

matcher.find()沒有找到所有的比賽,只有一場比賽。

你必須做以下事情:

int count = 0;while (matcher.find())
    count++;

順便說一句,matcher.groupCount()是完全不同的東西。

完整的例子

import java.util.regex.*;class Test {
    public static void main(String[] args) {
        String hello = "HelloxxxHelloxxxHello";
        Pattern pattern = Pattern.compile("Hello");
        Matcher matcher = pattern.matcher(hello);

        int count = 0;
        while (matcher.find())
            count++;

        System.out.println(count);    // prints 3
    }}

處理重疊匹配

當(dāng)計算上述片段aaaaaa的匹配時,您將獲得2

aaaa
aa
  aa

要獲得3個匹配,即此行為:

aaaa
aa
 aa
  aa

您必須在索引中搜索匹配,<start of last match> + 1如下所示:

String hello = "aaaa";Pattern pattern = Pattern.compile("aa");Matcher matcher = pattern.matcher(hello);int count = 0;int i = 0;while (matcher.find(i)) {
    count++;
    i = matcher.start() + 1;}System.out.println(count);    // prints 3


查看完整回答
反對 回復(fù) 2019-08-28
?
幕布斯7119047

TA貢獻(xiàn)1794條經(jīng)驗 獲得超8個贊

這適用于可能重疊的匹配:

public static void main(String[] args) {
    String input = "aaaaaaaa";
    String regex = "aa";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(input);
    int from = 0;
    int count = 0;
    while(matcher.find(from)) {
        count++;
        from = matcher.start() + 1;
    }
    System.out.println(count);}


查看完整回答
反對 回復(fù) 2019-08-28
  • 3 回答
  • 0 關(guān)注
  • 1811 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號