0

文字列に一致する正規表現を書く必要があります:

  • lorem、ipsum、45,56
  • lorem123、ipsum56743、dolor34,78,86
  • lorem-123、ipsum5678、dolor654,12,45,90
  • 1230-lorem、234-ips546um-234,12,56,78

しかし、文字列とは一致しません:

  • 123-456-ABC20089
  • 12-4-ABC123456

最後の文字列と一致するため、正規表現が機能しません。

([a-z0-9,\-]*)

どうすればそれを除外できますか?

4

3 に答える 3

1

正規表現として以下を使用します(問題のある文字列と一致します)。

\d+\-\d+\-[a-zA-Z0-9]+

次に、PHPコードで、一致の反対をチェックします。

<?php
$subject = "123-456-ABC20089";
$pattern = '/\d+\-\d+\-[a-zA-Z0-9]+/';
if(!preg_match($pattern, $subject)
{
    // it doesn't match
}
else
{
    // it does match, move along
}
?>
于 2012-09-26T06:02:56.233 に答える
0

^を使用します。これは、regexeの否定演算子です。しかし、ここでは「、」を否定したいだけです

(^[,]*)
于 2012-09-14T09:58:22.687 に答える
0
([a-z0-9\-]+,)+[a-z0-9\-]+

カンマで区切られた2つ以上の「単語」に一致します。それはあなたが探しているものですか?

于 2012-09-14T10:00:18.503 に答える