lau*_*kok 1 php regex whitespace preg-match
如何编写一个表达式来检查字符串中的小写字母、点和空格?
到目前为止,下面的代码试图检查低大写字母和点(无论如何它都不起作用!),但我不知道如何添加空格的表达式。
# check for matches of lowcaps or lowcaps with a dot
if (!preg_match('/([a-z0-9]|[a-z0-9\.])/', $cst_value))
{
$error = true;
echo ' please use lowcaps only with dot(s) and without any spacing.';
}
Run Code Online (Sandbox Code Playgroud)
[a-z0-9.]匹配小写字母、数字或点。
[^a-z0-9.]匹配所有非小写字母、数字或点的字符。
因此,如果/[^a-z0-9.]/匹配任何地方,则字符串包含 lc 字母、数字或点以外的内容。如果不符合,则满足您的条件。
if ( !preg_match('/[^a-z0-9.]/', $cst_value) ) {
// only lower-case letters, digits or dots
}
Run Code Online (Sandbox Code Playgroud)
或不带数字
if ( !preg_match('/[^a-z.]/', $cst_value) ) {
// only lower-case letters or dots
}
Run Code Online (Sandbox Code Playgroud)
更新: 示例:
foreach( array('abcdef', 'abc de', 'abc.de', 'aBcde') as $cst_value) {
echo $cst_value, ': ';
if ( !preg_match('/[^a-z.]/', $cst_value) ) {
echo " ok.\n";
}
else {
echo "failure\n";
}
}
Run Code Online (Sandbox Code Playgroud)
印刷
abcdef: ok.
abc de: failure
abc.de: ok.
aBcde: failure
Run Code Online (Sandbox Code Playgroud)