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
([a-z0-9\-]+,)+[a-z0-9\-]+

匹配两个或多个“单词”,以逗号分隔。那是你要找的吗?

于 2012-09-14T10:00:18.503 回答
0

使用 ^,它是 reg exe 的否定运算符。但是在这里你只想否定“,”

(^[,]*)
于 2012-09-14T09:58:22.687 回答