正则表达式:小写字母、点、零空格

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)

Vol*_*erK 5

[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)