簡體   English   中英

簡單的正則表達式問題(PHP)

[英]Simple regex question (php)

我一直在路由文件中使用此行:

$route['^(?!home|members).*'] = "pages/view/$0";

我正在嘗試找出表達式左側數組中的字符串( ^(?!home|members).* )。

基本上任何不是以下網址:

/home/home//members/members/應該為true。 我的問題是網址是否類似於/home-asdf 這被視為在我的排除URL列表中(在我的示例中僅包含“ home”和“ members”)。

有關如何解決此問題的想法?

試試這個修改:

^(?!(home|members)([/?]|$)).*

這種過濾掉開頭的網址, homemembers只有在這些名字后面緊跟一個斜杠或問號( [/?] ),或字符串(結束$ )。

http://www.regular-expressions.info/

. 運算符匹配所有字符。 *運算符表示先前的模式將重復0次或更多次。 這意味着您的路線的末尾會在單詞“ home”或“ members”之后多次匹配任何字符。 如果只想匹配一個或零個斜杠,則將.*更改為/?

順便說一句,我一直在使用它,它的工作原理很奇妙: http : //www.rubular.com/它主要用於紅寶石,但是在為php等通用正則表達式工作時也能很好地工作。

暫無
暫無

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

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