簡體   English   中英

PHP正則表達式僅接受選定的單詞或根本不接受任何單詞

[英]PHP regex that accept only selected words or no word at all

我正在嘗試做一個正則表達式,它將接受以下內容:

/profile
/profile/photo
/profile/video

但不接受/ photo和/ video以外的任何內容:

我嘗試了以下方法,但沒有任何運氣:

/profile((\/(photo|video))|[^\w])/

有人可以告訴我我的正則表達式怎么了。

謝謝

這將工作:

^\/profile(?:\/(photo|video))?$

關於您的正則表達式/profile((\\/(photo|video))|[^\\w])/

  • \\w匹配az, AZ, 0-9, _因此^\\w將匹配任何其他字符。 例如 profile/profile%profile#將導致匹配。 由於您編寫的是[^\\w]而不是[^\\w]+ or *因此它將在profile*here*后與單個non-word字符匹配profile*here*

  • 您尚未在profile添加/

從您編寫的內容派生而來,這也將起作用:

^\/profile(\/(photo|video))?$

嘗試這個:

/^\/profile(\/photo|\/video|)?$/

您可以使用此正則表達式:

^\/profile(\/photo|\/video)?$

這里有一個工作示例:

http://regex101.com/r/iE2yJ4/1

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM