のモジュールPHP
PCRE
で書き換えられた uri に一致する正規表現を探しています。uri は次のとおりです。Apache
mod_rewrite
/param1/param2/param3/param4
ウリのルール
- 少なくとも 1 つ含まれている必要があります
/
。 - パラメータには、文字、数字、
-
および_
;のみを許可する必要があります。 - 最初の 2 つのルールのインスタンスが 0 個以上存在する必要があります。
/\/[a-zA-Z0-9_\-\/]+$/
私はそれがで始まる必要があり、/
このようなものは一致しないはずだと思います/param1/param2/param3/param4*
どうですか:
if (preg_match("~^(?:/[\w-]+)+/?$~", $string)) {
# do stuff
}
説明:
The regular expression:
(?-imsx:^(?:/[\w-]+)+/?$)
matches as follows:
NODE EXPLANATION
----------------------------------------------------------------------
(?-imsx: group, but do not capture (case-sensitive)
(with ^ and $ matching normally) (with . not
matching \n) (matching whitespace and #
normally):
----------------------------------------------------------------------
^ the beginning of the string
----------------------------------------------------------------------
(?: group, but do not capture (1 or more times
(matching the most amount possible)):
----------------------------------------------------------------------
/ '/'
----------------------------------------------------------------------
[\w-]+ any character of: word characters (a-z,
A-Z, 0-9, _), '-' (1 or more times
(matching the most amount possible))
----------------------------------------------------------------------
)+ end of grouping
----------------------------------------------------------------------
/? '/' (optional (matching the most amount
possible))
----------------------------------------------------------------------
$ before an optional \n, and the end of the
string
----------------------------------------------------------------------
) end of grouping
----------------------------------------------------------------------