Hmm ... Regexs 'は本当に「削除」できません/ explode文字。たとえば、URLを入力できるフィールドがあるとします。 「/」を「URLの最後に削除する」というエラーメッセージを表示するか、またはJavascriptで許可しないようにすると、ユーザーが「/」を追加するのを制限することができます。 "/"が削除されます)。
私はあなたのURLにあるすべてのものをチェックする正規表現の式あげる:
(https?:\/\/)?(([A-Za-z0-9]+)((\.[a-z]{1,3})))(\/\w+)\/(\d)\/?
をここでは、この正規表現表現が何をするかです:
まずそれは、HTTPかどうかをチェックします://またはhttps://はURLにあります:(https?:\/\/)?
https?
は、基本的には:httpの末尾に「s」がある場合は、s?
(いずれの文字でも構いませんが、a? b? c? 1? 2? 3?
)です。それは "?"と同じです(https?:\/\/)
:(https?:\/\/)?
の後には、ここではhttp://またはhttps://が存在するかどうかを確認します。つまり、example.comのようなURL(最初はhttpまたはhttpsなし)も一致します。
次に、式の全体のセクションは(([A-Za-z0-9]+)((\.[a-z]{1,3})))
です。少しそれを打破してみましょう:
([A-Za-z0-9]+)
ここでは、任意の文字や数字をチェックする(例:「ウェブサイト」)、(大文字または小文字)、それが満たすまで:((\.[a-z]{1,3}))
、だけで任意の文字に任意の小文字をチェックします最大3文字(例:.com)。
だから(([A-Za-z0-9]+)((\.[a-z]{1,3})))
は、基本的に「1~3文字の間」と書かれている{1,3}
のため、stackoverflow.com、twitter.com、google.seではなくexample.onlineと一致します。
最後の部分は(\/\w+)\/(\d)\/?
です。最初にスラッシュに続く単語を確認する(\/\w+)
があります(例: "/ test")。 \w
は基本的にすべての単語のチェックを意味します。
その後、 "/":\/
、最後に "/"の後に数字(\d)
があることを確認します。例: "/ 1"この正規表現の末尾には、\/?
があります。これは、末尾にスラッシュがあるかどうかを確認するだけです。
だから、PHPでこの正規表現の式は次のように使用することができます:
$pattern = "/(https?:\/\/)?(([A-Za-z0-9]+)((\.[a-z]{1,3})))(\/\w+)\/(\d)\/?/";
$url = "https://example.com/user/1/";
if(preg_match($pattern, $url, $matches)){
echo $matches[1]; // Will echo https://
echo $matches[2]; // Will echo "example.com"
echo $matches[3]; // Will echo "example"
echo $matches[4]; // Will echo ".com"
echo $matches[5]; // Will echo ".com"
echo $matches[6]; // Will echo "/user"
echo $matches[7]; // Will echo "1"
var_dump($matches); // Will dump the array
}
・ホープ、このことができます。
編集;もちろん、正規表現はさまざまな方法で記述することができますが、言語ごとに異なっています。しかし、これは私が正規表現をどのように構築するかの例です。私はいつもそれを構造化し、部品に分解して、何が何であるかをより簡単に見て、正規表現でチェックしたいすべてを考えようとします。
'url.match(/website\.com(。*?)\ /?$ /);' –