ホームページ >バックエンド開発 >PHPチュートリアル >初心者には定期的に質問があり、助けが必要です。

初心者には定期的に質問があり、助けが必要です。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 13:55:55908ブラウズ

初心者として、書籍の記事公開ツールを使用していたとき、通常の URL マッチングに問題がありました。
すごいです
$result を走査した結果は、
[code=php]
Array
(
[0] => Array
(
[0] => http://demo.demo.baidu. com
) です。 [1] =>>返された結果は T.T です
式全体は URL 全体と一致しますが、2 番目の部分式の 2 つの一致を使用する必要があります。結果として、問題が発生している場所を教えていただければ幸いです。
ありがとう!




ディスカッションに返信(解決策)

$pattern = '/(http\:\/\/|https\:\/\/)?([a-zA-Z0-9-]+\.)+(com|cn|org|net)(\/[\w\%\&\=\'\"\?\/\.]*)?/';$string = 'http://demo.demo.baidu.com';preg_match_all($pattern,$string,$result);


上記のマスターが解決しました。しかし、2番目の部分式の後に+を追加する必要はないと感じます
(http\:\/\/|https\:\/\/)?(([a-zA-Z0-9-]+\.)+)+(com|cn|org|net)(\/[\w\%\&\=\'\"\?\/\.]*)?


(http\:\/\/|https\:\/\/)?(([a-zA-Z0-9-]+\.)+)(com|cn|org|net)(\/[\w\%\&\=\'\"\?\/\.]*)?
$pattern = '/(http\:\/\/|https\:\/\/)?((?:[a-zA-Z0-9-]+\.)+)(com|cn|org|net)(\/[\w%&=\'"?\/.]*)?/';$string = 'http://demo.demo.baidu.com';preg_match_all($pattern,$string,$result);


実際には、URLにタグを追加する関数として使用したいので、 preg_replace() を組み合わせる必要があります。パターン修飾子 e を付けて置換パラメータに追加すると、関数が呼び出され、一致した文字列が関数に渡されます。これが URL です。本には urlCut('\1\2\3\4') と記載されています。私は詳しくないので、この方法で渡します。一番上の質問は最初に表示されました。上記の専門家の方法を使用した後は問題ありませんでしたが、専門家は、マニュアルを確認したところ、\0 を直接渡すことができることがわかり、手間が大幅に軽減されたことを思い出しました。予想外でした〜
お二人ともありがとうございました!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。