簡體   English   中英

具有至少一個連字符的add_rewrite_rules的正則表達式

[英]Regular expression for add_rewrite_rules with at least one hyphen

我正在使用Wordpress'add_rewrite_rules的正則表達式。

我的目標是將具有單個目錄的URL與至少一個破折號匹配並返回該目錄。

我能夠找到這個:

'^([a-zA-Z0-9]*-[a-zA-Z0-9]*){1,20}/?$' => 'index.php?pagename=location&location=$matches[1]'

如果有連字符,則匹配,但僅返回字符串的結尾(最后一個連字符后面的部分)。

所以:

test/失敗(應該是,因為沒有連字符)

te-st/ pass,但只返回變量的“st”。

te-st-ing/ pass,但只返回變量的“ing”。

te-st-ing/a/ failed(因為還有另一個目錄)

我對表達式有點失落,但目標是“te-st”會通過,但會返回整個“te-st”字符串。 我認為對於知道如何處理表達式的人來說,這應該是一個簡單的解決方案嗎?

謝謝!

只是為了確保至少有一個連字符,你可以使用:

'^([^-/]*-[^/]*)/?$' => 'index.php?pagename=location&location=$matches[1]'

請嘗試這種模式:

^((?:\w+-){1,20}\w*)/?$

REGEX 101演示。

暫無
暫無

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

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