我有一个字符串,其中有效输入为's'''t'或'b'或字符串'all'。我试图知道该条目何时无效。似乎要求否定来测试坏字符串。结果应该是:
preg_match('/[^satb(all)]/', 's') ==> should be false (and is)
preg_match('/[^satb(all)]/', 'sall') ==> should be false (and is)
preg_match('/[^satb(all)]/', 'alsl') ==> should be true but is not (the l's are not part of 'all')
我尝试了很多不同的组合,但我无法做到。在此先感谢您的帮助。
答案 0 :(得分:0)
字符类仅匹配单个字符。 我想你想要的是:
if ( preg_match('/^(all|[satb]+)$/', $string) ) {
// string is valid, do something
} else {
// string is invalid, do something
}
这与以下内容匹配:
$string = "all";
$string = "s";
$string = "a";
$string = "t";
$string = "b";