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
}
- 1 回答
- 0 關(guān)注
- 133 瀏覽
添加回答
舉報(bào)