2012-04-11 17 views
1

私はこれを見てきました...この正規表現は何を実現しますか?

preg_match("/.*" . $row['keyword'] . ".*/", $word, $matches); 

何パターンが暗示してみませんか?

+1

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

+0

$ row ['keyword']の正規表現コマンド文字は評価されることに注意してくださいd。キーワードが文字列内にあるかどうかだけを確認したい場合は、 'preg_quote'に' strpos($ string、$ row ['keyword'])!== FALSE'を実行して – Eli

答えて

3

\n.)でない0文字以上(*)の後に続く、またはその前にある用語を見つけることを意味します。

他の場所で行われていない限り、$row['keyword']preg_quote($row['keyword'], '/')で囲む必要があります。

+0

+1することができます。誰も正しくエスケープしません! –

+0

それは意味がありました。この 'preg_quote'はウムラウトのようなドイツ語の文字でも安全ですか? –

+0

@Defensorコードポイントがすべて「127」より小さいメタ文字に一致する文字のみを検索するので、これは必要です。 – alex

1

/だけのパターンの区切りであり、それは単に$wordで、$row['keyword']にあるものの文字列の出現を探していますので、.*は「(改行以外の)任意の文字が0回以上の繰り返し」を意味します。

1
$row['keyword']はキーワードは、このような *などのメタ文字を含む場合には、それは $row['keyword']preg_quoteを呼び出すことも、より安全だ、 $word内に含まれているかどうかを確認しようとしている

/\など

3

説明:

/       # start of the regex 
.       # match anything (any character, etc - except for /n) 
*       # zero or more times 
" . $row['keyword']. "  # match the keyword 
.*       # same as above 
/       # end of the regex 
関連する問題