Регулярные выражения

Pegas

Новичок
Регулярные выражения

Что добавить в регулярку для проверки на кавычки и как указать что число пробелов ограничено, скажем 2мя?

PHP:
if (preg_match("/^[0-9a-zа-я-.\s]+$/i", $str))
 

Pegas

Новичок
читал, экранирую обратным слешем - не работает
пишу так
PHP:
$str='aaaaaa "sssss"';
if (preg_match("/^[0-9a-zа-я-.\s\"]+$/i", $str))
  return true;
не пашет
 

Фанат

oncle terrible
Команда форума
вообще-то, экранирование обратным слешем кавычки не имеет отношения к регулярным.

как ты узнал, что "не пашет"? Борозды в поле не оказалось?

-~{}~ 24.05.05 12:29:

как указать что число пробелов ограничено
1 вопрос: что имеется в виду под словом "пробел"?
2 вопрос: ты утверждаешь, что
предложенные тексты. почему не прочитал там, как задавать длину?
 

Фанат

oncle terrible
Команда форума
правильно.
ответь теперь на вопрос, что имеется в виду под пробелом.
затем отдели свой двойной пробел от остального выражения.
 

Pegas

Новичок
пробел это пустой символ.
пробел не двойной, я неправильно задал вопрос. уже разобрался.
остался вопрос с кавычками....

Изменил немного фукцию, так шо не бить....
данная конструкция не пропускает кавычки, результат функции FALSE. Где я допустил ошибку?

PHP:
function checkform_company($str)
  {
  if (get_magic_quotes_gpc()!==0)
    {
    stripslashes($str);
    }
  if (preg_match('/^[0-9a-zа-я-.\s"]+$/i', $str)) 
    echo "TRUE";
  else
    echo "FALSE";
  }
 

Serguitar

Новичок->продвинутый
Pegas
function checkform_company($str)
{
if (get_magic_quotes_gpc()!==0)
{
stripslashes($str);
}
if (preg_match('/^[0-9a-zа-я-.\s"]+$/i', $str))
echo "TRUE";
else
echo "FALSE";
}
Надеюсь, что после прочтения ты понимаешь ЧТО ищет твоё регулдярное выражение в твоей строке? Какие ещё вопросы?
 

Pegas

Новичок
не понял ответа ... :(
ищет цифры, латинские и руские буквы, тире, точку, пробел, кавычки, все это должно быть не менее одного символа, регистр не важен.
по-крайней мере так задача поставлена, кавычки тока не получается.
 

Serguitar

Новичок->продвинутый
Pegas
Я не отвечаю, я спрашиваю.
Если ты теперь, после прочтения статей по регуляркам, понимаешь, что ищет твой регулярное выражение в строке, то какие вопросы остались? Что неправильно в твоём выражении и почему оно работает не так, как ты хочешь? В таком случае перечитай ещё раз. Я тоже в своё время несколько раз перечитывал.

-~{}~ 24.05.05 15:25:

ищет цифры, латинские и руские буквы, тире, точку, пробел, кавычки, все это должно быть не менее одного символа, регистр не важен.
по-крайней мере так задача поставлена, кавычки тока не получается.
То есть - если в строке нет кавычек, функция возвращает ложь? Какую строку ты ей отправляешь?
 

Pegas

Новичок
да, именно если нет кавычек, то ложь
точнее в строке могут быть кавычки

$str='aaaaaaaaa \"bbbbb\" aaaaaaaa';
 

Фанат

oncle terrible
Команда форума
Pegas
покажи, пожалуйста, код, которым ты ПОРОВЕРЯЛ.
покажи код, из которого ты узнал, что
результат функции FALSE
как ты узнал, что результат функции FALSE
 

Serguitar

Новичок->продвинутый
Фанат
Она чуть выше представлена. Только она не ВОЗВРАЩАЕТ ложь, а ВЫВОДИТ.
 

Фанат

oncle terrible
Команда форума
Serguitar
слово код - мужского рода.
посему, никакая "она" меня не интересует.
меня интересует КОД.
какой - я написал выше.
приведённый здесь код поставленным мной условиям не отвечает
 

Pegas

Новичок
все, разобрался. всем спасибо за участие.

признаю что дурак, что пропустил присваивание переменной обрезанной от бэкслешей строки $str.

PHP:
function checkform_company($str) 
  { 
  if (get_magic_quotes_gpc()!==0) 
    { 
    $str=stripslashes($str); 
    } 
  if (preg_match('/^[0-9a-zа-я-.\s"]+$/i', $str)) 
    echo "TRUE"; 
  else 
    echo "FALSE"; 
  }
 

Serguitar

Новичок->продвинутый
Фанат
Да я то в курсе, что мужского!:) РусЛит, правда, не заканчивал, но слава богу с русским языком знаком. Одно время даже журналистничал...
А под словами "Она... представлена" я имел ввиду функцию, которую он привёл в своём предыдущем топике. Так что не придирайся!:)
Pegas
ризнаю что дурак
Что ещё Вы признаёте, подсудимый?
 

Фанат

oncle terrible
Команда форума
функции меня не интересуют.
меня интересует то, что я написал выше.
повторяться не собираюсь.
 

Pegas

Новичок
имелось ввиду, что если выражение в preg_match верно, то выводится true
 

Фанат

oncle terrible
Команда форума
меня не интересует, что "имелось в виду".
меня интересует КОНКРЕТНЫЙ КОД.
за всё время своих страданий и на форуме, и в моих личных сообщениях, ты так и не привёл здесь кода, который бы выводил что либо. хоть что-нибудь.
И при этом у меня есть веские основания полагать, что такого кода не существует и в природе.

далее. я не спрашивал код, который "выводится true ".
я спрашивал код, который возвращает FALSE
 

Pegas

Новичок
............ skip .........
function checkform_company($str)
{
if (get_magic_quotes_gpc()!==0)
{
$str=stripslashes($str);
}
if (preg_match('/^[0-9a-zа-я-.\s"]+$/i', $str))
return true;
else
return false;
}

............ skip ........

if (checkform_company($_POST["company"])==false)
header("location: index.php?err=15");

........ skip .......


ЭТО?
 
Сверху