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

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

Java正則表達(dá)式?(expr){num}感到困惑嗎?

Java正則表達(dá)式?(expr){num}感到困惑嗎?

紫衣仙女 2021-04-28 06:04:49
我正在嘗試識別僅包含一個(gè)整數(shù)的字符串。即恰好連續(xù)的數(shù)字,例如“1234”(沒有點(diǎn),沒有逗號)一個(gè)串。所以我認(rèn)為應(yīng)該這樣做:(這與Java String Escapes一起使用):(\\d+){1,}因此,“ \ d +”正確是一串連續(xù)的數(shù)字。(正確的?)我將此表達(dá)式作為子表達(dá)式包含在“(”和“)”中,然后試圖說“這些子表達(dá)式中只有一個(gè)。這是(matcher.find())檢查各種字符串的結(jié)果:(請注意,此后的正則表達(dá)式在這里“原始”-不轉(zhuǎn)義Java字符串)。Pattern:(\d+){1,}                  Input String                        Result                             1                          true                       XX-1234                          true      do-not-match-no-integers                         false         do-not-match-1234-567                          true          do-not-match-123-456                          true看來模式中的'1'適用于“ + \ d”字符串,而不是那些連續(xù)字符串的數(shù)目。因?yàn)槿绻覍?shù)字從1更改為4,我可以看到結(jié)果更改為以下內(nèi)容:Pattern:(\d+){4,}                  Input String                        Result                             1                         false                       XX-1234                          true      do-not-match-no-integers                         false         do-not-match-1234-567                          true          do-not-match-123-456                         false我在這里想念什么?出于興趣-如果我完全取消了“(”和“)”-我會再次得到不同的結(jié)果Pattern:\d+{4,}              Input String                        Result                         1                          true                   XX-1234                          true  do-not-match-no-integers                         false     do-not-match-1234-567                          true      do-not-match-123-456                          true
查看完整描述

3 回答

?
白衣染霜花

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊

這是正則表達(dá)式:


^[^\d]*\d+[^\d]*$   

這是零個(gè)或多個(gè)非數(shù)字,然后是數(shù)字的子字符串,然后又是零個(gè)或多個(gè)非數(shù)字,直到字符串結(jié)尾。這是Java代碼(帶有轉(zhuǎn)義的斜杠):


class MainClass {

      public static void main(String[] args) {

        String regex="^[^\\d]*\\d+[^\\d]*$";

        System.out.println("1".matches(regex));  // true

        System.out.println("XX-1234".matches(regex)); // true

        System.out.println("XX-1234-YY".matches(regex)); // true

        System.out.println("do-not-match-no-integers".matches(regex)); // false

        System.out.println("do-not-match-1234-567".matches(regex)); // false

        System.out.println("do-not-match-123-456".matches(regex)); // false

      }         

}


查看完整回答
反對 回復(fù) 2021-05-26
?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊

Matcher.find()會嘗試在字符串中找到匹配項(xiàng)。您應(yīng)該嘗試Matcher.matches()查看模式是否適合所有字符串。


這樣,您需要的模式是 \d+


編輯:似乎我誤解了這個(gè)問題。使用相同模式查找字符串是否只有一個(gè)整數(shù)的一種方法是:


int matchCounter = 0;

while (Matcher.find() || matchCounter < 2){

   matchCounter++;

}

return matchCounter == 1


查看完整回答
反對 回復(fù) 2021-05-26
?
守著一只汪

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以使用RegEx ^\D*?(\d+)\D*?$

  • ^\D*? 確保行首與第一組之間沒有數(shù)字

  • (\d+) 匹配您的數(shù)字

  • \D*?$ 確保您的第一組和行尾之間沒有數(shù)字

演示

因此,對于您的Java字符串,應(yīng)為: ^\\D*?(\\d+)\\D*?$


查看完整回答
反對 回復(fù) 2021-05-26
  • 3 回答
  • 0 關(guān)注
  • 222 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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