亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

正則表達式來驗證圖像

正則表達式來驗證圖像

Go
牧羊人nacy 2021-12-20 10:21:08
我正在用 golang 編寫一個 Web 應用程序。我正在使用正則表達式來驗證 URL。但我無法在 URL 驗證中驗證圖像 (abc.png)。var validPath = regexp.MustCompile("^/$|/(home|about|badge)/(|[a-zA-Z0-9]+)$")上面的網址需要/home/,/about/但不能為/abc.png。我的意思是.它本身不起作用我嘗試了以下正則表達式,但沒有幫助var validPath = regexp.MustCompile("^/$|/(home|about|badge|.)/(|[a-zA-Z0-9]+)$")var validPath = regexp.MustCompile("^/$|/(home|about|badge)(/|.)(|[a-zA-Z0-9]+)$")我正在嘗試匹配http://localhost:8080/badge.png任何人都可以幫我解決這個問題嗎?
查看完整描述

3 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

它出現

^/$|^(?:/(home|about|badge))?/((?:badge|abc)\.png|[a-zA-Z0-9]*)$

應該為你工作。請參閱正則表達式演示

模式分解:

  • ^/$-/作為一個完整的字符串

  • | - 或者...

  • ^ - 字符串的開始

  • (?:/(home|about|badge))?- 可選序列/+ 或者home,aboutbadge

  • /- 一個/符號后跟

  • ((?:badge|abc)\.png|[a-zA-Z0-9]*) - 第 1 組捕獲:

    • (?:badge|abc)\.png-badgeabc跟隨.png

    • | - 或者...

    • [a-zA-Z0-9]* - 零個或多個字母數字

  • $ - 字符串結束

這是Go 游樂場演示。

package main


import "fmt"

import "regexp"


func main() {

    //var validPath = regexp.MustCompile("^/((home|about)(/[a-zA-Z0-9]*)?|[a-zA-Z0-9]+\\.[a-z]+)?$")

    var validPath = regexp.MustCompile(`^/$|^(?:/(home|about|badge))?/((?:badge|abc)\.png|[a-zA-Z0-9]*)$`)


    fmt.Println(validPath.MatchString("/"), validPath.MatchString("/home/"), validPath.MatchString("/about/"), validPath.MatchString("/home/13jia0"), validPath.MatchString("/about/1jnmjan"), validPath.MatchString("/badge.png"), validPath.MatchString("/abc.png"))

    fmt.Println(validPath.MatchString("/nope/"), validPath.MatchString("/invalid.png"), validPath.MatchString("/test/test"))


    m := validPath.FindStringSubmatch("/about/global")

    fmt.Println("validate() :: URL validation path m[1] : ", m[1])

    fmt.Println("validate() :: URL validation path m[2] : ", m[2])

    if m == nil || m[2] != "global" {

        fmt.Println("Not valid")

    }

}


查看完整回答
反對 回復 2021-12-20
?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

您正在尋找的是以下內容(基于您發布的示例路徑):

var validPath = regexp.MustCompile("^/((home|about)(/[a-zA-Z0-9]*)?|[a-zA-Z0-9]+\\.[a-z]+)?$")


查看完整回答
反對 回復 2021-12-20
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

您可以使用以下正則表達式進行驗證:

var validPath = regexp.MustCompile("^\/(home|about|badge)\/[a-zA-Z0-9]+[.][a-z]+$")

PS:我做了一個靈活的正則表達式,所以它接受了大量的圖像格式:png,jpgjpeg等..

你可以在這里測試:Regex


查看完整回答
反對 回復 2021-12-20
  • 3 回答
  • 0 關注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號