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

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

如何檢查一個(gè)字符串是否連續(xù)包含 2 個(gè)相同的字符?

如何檢查一個(gè)字符串是否連續(xù)包含 2 個(gè)相同的字符?

Go
慕標(biāo)5832272 2023-03-07 16:46:04
我有這樣的正則表達(dá)式REGEX_2_SAME_CHARACTER_IN_A_ROW = "^(?:(.)(?!\\1\\1))*$"并使用該正則表達(dá)式檢查密碼是否連續(xù)包含 2 個(gè)相同的字符contain2SameCharacterInARow, err := regexp.MatchString(REGEX_2_SAME_CHARACTER_IN_A_ROW, password)但我得到這個(gè)錯(cuò)誤error match regex 2 same char in a row: error parsing regexp: invalid or unsupported Perl syntax: `(?!`我讀過(guò)其他使用 regexp.MustCompile 的問(wèn)題,但我不知道如何處理或編碼,有沒(méi)有人可以幫助我解決這個(gè)問(wèn)題?在這里您可以查看我的完整代碼以驗(yàn)證密碼 https://play.golang.com/p/5Fj4-UPvL8s
查看完整描述

1 回答

?
暮色呼如

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

您不需要錨點(diǎn)、非捕獲組或負(fù)面前瞻。只需匹配并捕獲任何字符 ( (.)) 后跟自身 ( \\1)。

REGEX_2_SAME_CHARACTER_IN_A_ROW = "(.)\\1"

但這給我們帶來(lái)了下一個(gè)問(wèn)題:Go regexes do not support back references,所以你需要找到一個(gè)不同的解決方案。一個(gè)是自己循環(huán)字符串。

這是一個(gè)簡(jiǎn)單循環(huán)的解決方案:

package main


import (

    "errors"

    "fmt"

    "strings"

)


func main() {

    fmt.Println(ValidatePassword("passsword01"))

}


func ContainsRepeatedChar(s string) bool {

    chars := strings.Split(s, "")

    char := chars[0]

    for i := 1; i < len(chars); i++ {

        if (chars[i] == char) {

            return true

        }

        char = chars[i]

    }

    return false

}


func ValidatePassword(password string) error {

    contain2SameCharacterInARow := ContainsRepeatedChar(password)

    if contain2SameCharacterInARow {

        fmt.Println("duplicated char")

        return errors.New("invalid password")

    }


    fmt.Println("all good")

    return nil

}


查看完整回答
反對(duì) 回復(fù) 2023-03-07
  • 1 回答
  • 0 關(guān)注
  • 133 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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