X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Регулярные выражения
kilogram
kilogram
Topic Starter сообщение 9.6.2012, 19:53; Ответить: kilogram
Сообщение #1


Читаю Котерова "Регулярные выражения".
Там пишут что \w - любая буква или цифра.
Написал такой код:
[PHP]
<form action="index.php" method="post">
<input type="text" name="username"/>
<input type="submit" value="Отправить" />
</form>
<?php
///[a-zA-Z]+-[a-zA-Z]/
// preg_match("шаблон_поиска", "строка_в_которой_проводится_поиск", массив_с_результами_поиска)
if(isset($_POST['username']))
$user = $_POST['username'];
else { $user = ''; exit;}
echo $user.'<br>';


if(preg_match("/\\w/", $user)) {


echo "Имя пользователя задано в правильном формате";
} else {
echo "Имя пользователя задано в <b><font color='red'>неправильном формате</font></b>";
}

?>

[/PHP]
Почему не работает кирилица в \w?

2. Там пишут что есть выражения, которые определяют группу символов.
пишу так:
[PHP]if(preg_match("/[[:alpha:]]/", $user)) { [/PHP]
определяет только латиницу почему то

3. Пишут что знак "*" соответствует 0 или больше символов, пишу так
[PHP]/a-*-/[/PHP]
а затем ввожу одну букву, выдает ошибка, оказывается нужно 1 и более, а не ноль и более.

4.[IMG]http://s2.ipicture.ru/uploads/20120609/6Sdxdkh1.jpg[/IMG]
Пробую так:
[PHP]if(preg_match("/a{1}/", $user)) { [/PHP]
хоть напишу один раз или 10 раз букву "а" выдает что верно, хотя здесь ограничитель в один раз
Пишу так:

[PHP]if(preg_match("/a{1,2}/", $user)) { [/PHP]
Букву "а" согласно данному выражению я могу вводить от 1-2 раз, ввожу 10 раз букву "а" и выдает что верно

5. Пишут что если знак "?"(квантификатор), перед ним символ может повторятся только 0 или 1 раз(но не более!).
Пишу такой код:
[PHP]if(preg_match("/a?/", $user)) { [/PHP]
Ввожу 10 раз букву а латинскую и выдает что верно.

Если кто может, объясните вот эти действия почему так и также почему не работет кирилица. Заранее благодарю.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Muxa_hb
Muxa_hb
сообщение 9.6.2012, 20:01; Ответить: Muxa_hb
Сообщение #2


(kilogram @ 9.6.2012, 22:53) *
if(preg_match("/a{1}/", $user)) {

попробуй так
[PHP]if(preg_match("/[a]{1}/",$user)) { ...[/PHP]
\w - спецсимвол, который призван заменить целый символьный класс, в него входят все символы, которые могут входить в слово, обычно это [a-zA-Z_], хотя много может зависеть от установленной локали, поддержки юникода и т.д.

а вообще, вот, когда то мне хорошо помогло

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) База профилей+топики для Xrumer 12, регулярные обновления, скидки, бонусы.
98 xrumermaster 49169 15.9.2019, 0:47
автор: -xrumer-master-
Горячая тема (нет новых ответов) База профилей+топики+гостевые+рефспам для Xrumer 12.ххх, регулярные обновления
50 xrumer-master 12792 15.9.2019, 0:00
автор: xrumer-master
Открытая тема (нет новых ответов) Нужны рерайтеры. Простые и регулярные заказы.
Оплата 30-35 рублей / 1000 символов б.п.
3 13sanek 1921 9.5.2017, 12:26
автор: Gadraser


 



RSS Текстовая версия Сейчас: 25.4.2024, 23:40
Дизайн