我需要编写匹配字符串的正则表达式:
- 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,\-]*)
我怎样才能排除它?
我需要编写匹配字符串的正则表达式:
但与字符串不匹配:
我的正则表达式不起作用,因为它与最后一个字符串匹配:
([a-z0-9,\-]*)
我怎样才能排除它?
使用以下作为您的正则表达式(匹配有问题的字符串):
\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
}
?>
([a-z0-9\-]+,)+[a-z0-9\-]+
匹配两个或多个“单词”,以逗号分隔。那是你要找的吗?
使用 ^,它是 reg exe 的否定运算符。但是在这里你只想否定“,”
(^[,]*)