テキスト内に「http」と「https」と「email」が必要です。次のテキストでPHP定期的にURLとメールを検索します
$regex = "((https|ftp)\:\/\/)"; // http and https
$regex .= "([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)[email protected])"; // email
if(preg_match("/^$regex$/", $comment))
{
$r = 'find';
} else {
$r = 'not find';
}
を:私が試してみました
$comment = 'hello https:// and hello email [email protected]'
しかし、それは動作しません。おそらく間違った分割のためです。
if (filter_var($comment, FILTER_VALIDATE_EMAIL)) {
return new \Exception('exist url');
}
が、私はコメントフィルターで唯一の電子メールを持っている場合、それが動作すると「ハロー[email protected]」、そうでない私が持っている場合は、このメールを見つけた:
は、私はこのようなフィルタを試してみました電子メールを見つける。フィルタFILTER_VALIDATE_URLについては
- それはこのようであれば、それは、URLを見つけることができません「ハローERLます。https:こんにちは\」
いくつかのテキストにURLやメールを見つけるために、右の正規表現を書くためにどのように?この行で
あなたの正規表現の始めに '^'は、行の先頭でマッチを開始することを意味します。したがって、電子メール/ URLの前に他のコンテンツがある場合は、使用しないでください。同じものがパターンの最後の '$'に有効です - 開始点ではなく行の終わりにマッチするだけです。 –