[quote=引用 8 楼 thy442030800 的回复:] 看懂这个用法就明了了: (a)(?!.*?\1) 表示在该字符串中 a的后面不会重复出现a 又加了一个(?:)+用来重复检查,最终确保整个字符串中不会出现重复字符
看懂这个用法就明了了: (a)(?!.*?\1) 表示在该字符串中 a的后面不会重复出现a 又加了一个(?:)+用来重复检查,最终确保整个字符串中不会出现重复字符
$a = "987231\n"; $b = "987231"; $c = '987232'; $e='/^(?!0)(?:([0-9])(?!.*?\1))+$/'; //$e1='/^(?!0)(?:([0-9])(?!.*?\1))+/'; preg_match($e, $a, $matches); print_r($matches);
第二个错的,没注意开始一定是数字。
(?!.*?\1) 不是不允许后面有重复的数字。 ?!.*? 非.*? . 匹配除换行符以外的任意字符 也就是说,后面可以是换行。
87,922
社区成员
224,618
社区内容
加载中
试试用AI创作助手写篇文章吧