как написать выражение, которое проверяет наличие нижних кадров, точек и без пробелов в строке?
код, указанный до сих пор, пытался проверить на наличие низких точек и точек (это все равно не работает!), но я не знаю, как добавить выражение в пробелы.
# 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.'; } 
есть идеи?
большое спасибо, Лау
  [a-z0-9.] соответствует строчной букве или цифре или точке. 
  [^a-z0-9.] соответствует всем символам, которые не являются строчной буквой или цифрой или точкой. 
  Поэтому, если /[^a-z0-9.]/ соответствует где угодно, строка содержит нечто, отличное от lc-letter, digit или dot.  Если это не соответствует вашему условию, выполняется. 
 if ( !preg_match('/[^a-z0-9.]/', $cst_value) ) { // only lower-case letters, digits or dots } 
или без цифр
 if ( !preg_match('/[^az.]/', $cst_value) ) { // only lower-case letters or dots } 
update: example:
 foreach( array('abcdef', 'abc de', 'abc.de', 'aBcde') as $cst_value) { echo $cst_value, ': '; if ( !preg_match('/[^az.]/', $cst_value) ) { echo " ok.\n"; } else { echo "failure\n"; } } 
печать
 abcdef: ok. abc de: failure abc.de: ok. aBcde: failure 
Я думаю, вы этого хотите:
 if ( preg_match( '/[^a-z0-9.]/' ) ) { $error = true; } 
Имейте в виду, я удалил!. Теперь, если это соответствует, вы получите сообщение об ошибке. VolkerK отменил его, но забыл удалить!, Я думаю.
Кроме того, http://regexpal.com/ является вашим другом.
  /^[a-z0-9.]+$)/ 
Должен это делать. Подумайте только, что допускаются только маленькие буквы, точки и цифры . Выражение не будет соответствовать, если включено какое-либо белое пространство. Btw. вам не нужно избегать метасимволов в группе захвата.
  ^ и $ указывает, что вся строка должна содержать только те символы в группе захвата (они отмечают начало и конец строки), а символ + указывает, что должен произойти хотя бы один из этих символов.  В зависимости от ваших потребностей вы можете изменить его, например, на {3,} что означает, что строка должна содержать не менее 3 символов. 
Пример:
 $values=array("fooBar", "123.45", "foo bar", "foo.bar"); foreach($values as $value) { if (!preg_match('/^[a-z0-9.]+$/', $value)) { echo "Not valid: $value\n"; } } 
печатает:
 Not valid: fooBar Not valid: foo bar 
  '/^[a-z0-9.]+$/' должно быть правильным регулярным выражением.