0

この正規表現を大文字と小文字を区別するように変更しようとしましたが、多くの可能な解決策 (/[u=|&l=|&dl=|&f=]/iなど) がありましたが、思いどおりに動作しませんでした。

u=&l=&dl=、および&f=から取得されprofile-photos.php?u=edgren&dl=ます。たとえば、この正規表現を使用してユーザー名のみを取得し、edgren他の GET (l、dl、および f) を識別します。

Looking at <a href="'.url('user/'.$profile).'">'.properize($profile).'</a> '.(isset($_GET['l']) ? 'likes' : (isset($_GET['dl']) ? 'dislikes' : 'favorites'))URL とともに「Looking at edgrens dislikes」を出力しますprofile-photos.php?u=edgren&dl=

私が今持っている正規表現は、GET が間違っている &dl= の場合に出力されますegren( regexpal.com の例)。いわば、ユーザー名の半分ではなく、ユーザー名全体を印刷したいのです。

どうすれば問題を解決できますか?

前もって感謝します。

4

1 に答える 1

3

代替と文字クラスを混同しています。複数の文字列のいずれかに一致させたい場合は、丸括弧を使用します: (u=|&l=|&dl=|&f=). 角括弧は文字クラス用です (「これらの角括弧で囲まれた文字のいずれかである場合、1 つの文字に一致する」という意味があります)。

またi、正規表現で明示的に大文字小文字を区別します。

于 2012-09-29T22:08:23.893 に答える