Регулярные выражения: точное совпадение

Yaguan

пилот
Регулярные выражения: точное совпадение

Регулярные выражения: как узнать, соответствует ли строка точно указанному шаблону? Она должна содержать только то, что указано в регэкспе, и не больше.
Например:
выражение: '/\s*[а-яА-Я]+\s*[a-zA-Z]+\s*/'
Строка ' Абвгд Abcdefg ' -- подходит
строка '233 Абвгд Abcdefg ' -- не подходит (есть еще и цифры)

Можно ли указать ^ начале и $ в конце, и использовать preg_match() ?
 

гоша

Guest
> Можно ли указать ^ начале и $ в конце, и использовать preg_match() ?

Тебе типа разрешение нужно?
Разрешаю. ;)
 

Alexos

Новичок
у тебя одна строка или несколько?

-~{}~ 13.02.04 17:55:

можно по разному сделать.. как хошь..
можно например считать файл в массив с помощью file()
и проверять каждую строку по шаблону.. это даст тебе возможность отдельно вывести строки соответвующие шаблону и отдельно которые не соответствуют.
короче разделить их..
а вообще задачу свою конкретизируй..
 

Demiurg

Guest
Alexos
у тебя глюки ???
где ты видел в вопросе слово "файл" ?
 

Yukko

Новичок
Yaguan
никогда еще не было такого, чтобы строка неточно соответствовала шаблону! никогда!!!

в шаблоне ^ и $ символы обозначают начало и конец строки, т.е. для проверки всей строки на совпадение с шаблоном, а не поиском совпадения по шаблону внутри строки, эти символы ставить надо обязательно!

Alexos
ты че бредишь? чтоли??? какой файл? где ты его видел в посте Yaguan'а?
 

Yaguan

пилот
Тебе типа разрешение нужно?
Разрешаю.
Спасибо ;-)

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

Alexos
у тебя глюки ???
где ты видел в вопросе слово "файл" ?
Да, файлы не причем, строки уже хранятся в переменных.

-~{}~ 13.02.04 20:11:

никогда еще не было такого, чтобы строка неточно соответствовала шаблону! никогда!!!
Да, согласен. На самом деле я имел в виду, что шаблон строго задает формат, а не "что-нибудь, где есть то-то и то-то".

в шаблоне ^ и $ символы обозначают начало и конец строки, т.е. для проверки всей строки на совпадение с шаблоном, а не поиском совпадения по шаблону внутри строки, эти символы ставить надо обязательно!
Кажется, это мне и было нужно. Спасибо
 

Alexos

Новичок
OK, конкретизирую:
Есть две строки. Нужно проверить, если первая строка состоит только из русского слова и английскиго слова, то и вторая должна соответвовать этому формату.
как то странно ИМХО конкретизировал :)
может так?
Есть две строки. Нужно проверить, если первая и вторая строка состоит только из русского слова и английскиго слова, то...
или я ошибаюсь?..
 

Alexos

Новичок
ну и какие проблемы? ты ж сам всё знаешь..

if ( (preg_match("/^[а-яА-Я]+\s*[a-zA-Z]+$/", $str1)) and (preg_match("/^[а-яА-Я]+\s*[a-zA-Z]+$/", $str2))) {...}
 

Yaguan

пилот
if ( (preg_match("/^[а-яА-Я]+\s*[a-zA-Z]+$/", $str1)) and (preg_match("/^[а-яА-Я]+\s*[a-zA-Z]+$/", $str2))) {...}
Я это уже написал :)
а and в качестве коньюнкции в ПХП правда работает? Я полагал, синтаксис строго сишный...
 
Сверху