if (preg_match('/[^а-я]+/msi', $wer)) {
echo '<div>'.$wer.' - НЕ Русские буквы</div>';
}else{
echo '<div>'.$wer.' - Русские буквы</div>';
}
Но оно как-то не правильно работает (то определяет русские буквы, то не определяет)
Еще такое пробовал
if (preg_match("/^[а-Я-]+$/ui", $wer)) {
echo "true";
}
Но оно совсем не работает (ошибку выдает)
Подскажите пожалуйста регулярное выражение, которое выдает true, если в строке только русские буквы, иначе false
Спустя 14 минут, 51 секунда (5.05.2011 - 14:25) inpost написал(а):
Тебе бы почитать про модификаторы.
Ты вставляешь большую букву Я с модификатором i , можешь объяснить почему?
В первом варианте ты не указываешь кодировку, в которой работаешь. Так же в первом варианте нет начала и конца строки, то есть поиск идёт символов не русских в целом, а не конкретное его наличие в данной переменной.
Второй вариант больше похож на правду, только так же там отсутствует ещё одна русская буква ё. Для второго варианта дефис рекомендуют ставить в самом начале, а не в конце ^[-а-я]+$, и модификаторы ui.
Ты вставляешь большую букву Я с модификатором i , можешь объяснить почему?
В первом варианте ты не указываешь кодировку, в которой работаешь. Так же в первом варианте нет начала и конца строки, то есть поиск идёт символов не русских в целом, а не конкретное его наличие в данной переменной.
Второй вариант больше похож на правду, только так же там отсутствует ещё одна русская буква ё. Для второго варианта дефис рекомендуют ставить в самом начале, а не в конце ^[-а-я]+$, и модификаторы ui.
Спустя 2 минуты, 46 секунд (5.05.2011 - 14:28) DedMorozzz написал(а):
Цитата |
Для второго варианта дефис рекомендуют ставить в самом начале, а не в конце |
Совершенно не важно. Главное что бы не как интервал был. Я вставляю обычно, как раз - в конце. Ну иль в середине, проэкранировав оную
Спустя 4 минуты, 59 секунд (5.05.2011 - 14:33) inpost написал(а):
DedMorozzz
Я с тобой согласен и я не утверждал, что необходимо, а "рекомендуют" - намекал как раз на Котерова.
Я с тобой согласен и я не утверждал, что необходимо, а "рекомендуют" - намекал как раз на Котерова.
Спустя 2 минуты, 21 секунда (5.05.2011 - 14:35) Игорь_Vasinsky написал(а):
Цитата |
дефис рекомендуют ставить в самом начале, а не в конце |
а почему?
Спустя 4 минуты, 55 секунд (5.05.2011 - 14:40) Ser18 написал(а):
Цитата (inpost @ 5.05.2011 - 11:25) |
Тебе бы почитать про модификаторы. |
Почитать надо
Я просто думал найти готовое решение (казалось задача распространенная), но эти решения оказались не рабочие
Спустя 9 минут, 9 секунд (5.05.2011 - 14:49) inpost написал(а):
Ser18
Ты вечно будешь искать готовые решения, где за тебя всё пишут? Уже 8 месяцев, пора изучать, я как раз в такой период и взялся за изучение регулярок.
Ты вечно будешь искать готовые решения, где за тебя всё пишут? Уже 8 месяцев, пора изучать, я как раз в такой период и взялся за изучение регулярок.
Спустя 15 минут, 30 секунд (5.05.2011 - 15:04) DedMorozzz написал(а):
Цитата (Игорь_Vasinsky @ 5.05.2011 - 14:35) | ||
а почему? |
Не почему. Личные пристрастия.
Спустя 21 минута, 20 секунд (5.05.2011 - 15:26) inpost написал(а):
Игорь_Vasinsky
Котеров, 2-ое издание, раздел по регулярным выражениям.
Котеров, 2-ое издание, раздел по регулярным выражениям.
Спустя 2 часа, 3 минуты, 9 секунд (5.05.2011 - 17:29) walerus написал(а):
ТС - а для чего их определять то?, цель задачи какая ? заменять, удалять, просто найти ? Что б к коду не возвращаться много раз )).
Это просто поиск есть ли хоть одна буква Русская в строке
Результат:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Кодировка</title>
</head>
<body>
<?php
$array = array('Вася Пупкин', 'Doom Games', 'Пупкин Games');
foreach($array as $line)
if (preg_match('~[а-яА-Я]~', $line))
{
echo $line. ' - Русский язык'."\n<br>"; flush();
}
else
{
echo $line. ' - НЕ Русский язык'."\n<br>"; flush();
}
?>
</body>
</html>
Это просто поиск есть ли хоть одна буква Русская в строке
Результат:
Вася Пупкин - Русский язык
Doom Games - НЕ Русский язык
Пупкин Games - Русский язык
Спустя 2 минуты, 55 секунд (5.05.2011 - 17:32) inpost написал(а):
walerus
Ты что-то немного не то написал
Ты что-то немного не то написал

Спустя 6 минут, 2 секунды (5.05.2011 - 17:38) walerus написал(а):
Цитата (inpost @ 5.05.2011 - 14:32) |
walerus Ты что-то немного не то написал ![]() |
Не тем цветом или .... ?, пояснил бы что не так то ))
Задание ТС - "Подскажите пожалуйста регулярное выражение, которое выдает true, если в строке только русские буквы, иначе false", я сделал не true - false, а вывод на экран.
Спустя 4 минуты, 33 секунды (5.05.2011 - 17:42) inpost написал(а):
walerus
Я ранее писал, модификаторы: iu , выделение начала и конца строки, отсутствие буквы ё - вот твои ошибки.
Я ранее писал, модификаторы: iu , выделение начала и конца строки, отсутствие буквы ё - вот твои ошибки.
Спустя 8 минут, 30 секунд (5.05.2011 - 17:51) walerus написал(а):
Цитата (inpost @ 5.05.2011 - 14:42) |
walerus Я ранее писал, модификаторы: iu , выделение начала и конца строки, отсутствие буквы ё - вот твои ошибки. |
Спешал фо ю ).
Модификатор "i" - Если этот модификатор используется, символы в шаблоне соответствуют символам как верхнего, так и нижнего регистра. У меня вроде как тоже учтены и маленькие и большие.
Модификатор "u" - шаблоны обрабатываются как UTF-8 строки. У меня как бы стоит кодировка UTF-8, особого смысла не заметил в нем.
Результат:
Вася Пупкин - Русский язык
Doom Games - НЕ Русский язык
Пупкин Games - Русский язык
Inpost Ё - Русский язык
Inpost ё - Русский язык
P.S. Если не так у меня, написал бы свой пример ;)
Спустя 2 минуты, 18 секунд (5.05.2011 - 17:53) Ser18 написал(а):
Цитата (walerus @ 5.05.2011 - 14:29) |
ТС - а для чего их определять то?, цель задачи какая ? заменять, удалять, просто найти ? |
Задача у меня такая
Есть таблица в ней два столбика В одном на русском написано в другом на латинском (словарь) Если латинскими буквами в поиск ввести слово, то ищем его в колонке с латинскими буквами и наоборот
Кроче буду изучать регулярные выражения
Спустя 4 минуты, 23 секунды (5.05.2011 - 17:58) walerus написал(а):
ну решение как бы дал, если совсем просто, то:
У меня работает, у кого нет, приводим пример и результат :)
if (preg_match('~[а-яА-Я]~', $line))
$result = true;
else
$result = false;
У меня работает, у кого нет, приводим пример и результат :)
Спустя 4 минуты, 6 секунд (5.05.2011 - 18:02) Ser18 написал(а):
Цитата (walerus @ 5.05.2011 - 14:58) |
ну решение как бы дал, если совсем просто, то:
У меня работает, у кого нет, приводим пример и результат :) |
Да работает Спаибо
Спустя 3 минуты, 11 секунд (5.05.2011 - 18:05) inpost написал(а):
Ser18
Ёлка не работает, Елkа не работает, ну а ты можешь брать, если лень изучить дня 3-4 на регулярки.
Ёлка не работает, Елkа не работает, ну а ты можешь брать, если лень изучить дня 3-4 на регулярки.
Спустя 16 секунд (5.05.2011 - 18:05) Ser18 написал(а):
Правда если написать такую букву é, то не работает
Пишет Русская
Пишет Русская
Спустя 1 минута, 43 секунды (5.05.2011 - 18:07) inpost написал(а):
walerus
Специально для тебя:
i - не надо дублировать большие и маленькие буквы
u - необходимо использовать всегда при работе с кодировкой UTF-8.
Начало и конец строки специально для того, чтобы в середине не встречались перемешки, чтобы работало нормально.
Специально для тебя:
i - не надо дублировать большие и маленькие буквы
u - необходимо использовать всегда при работе с кодировкой UTF-8.
Начало и конец строки специально для того, чтобы в середине не встречались перемешки, чтобы работало нормально.
Спустя 1 минута, 31 секунда (5.05.2011 - 18:08) Ser18 написал(а):
inpost
Учить то я в любом случае буду (уже) Просто каждый раз спрашивать тоже не дело
Учить то я в любом случае буду (уже) Просто каждый раз спрашивать тоже не дело
Спустя 4 часа, 46 минут, 9 секунд (5.05.2011 - 22:55) walerus написал(а):
Цитата (Ser18 @ 5.05.2011 - 15:05) |
Правда если написать такую букву é, то не работает Пишет Русская |
é - немного не латинская буква

Спустя 11 минут, 19 секунд (5.05.2011 - 23:06) inpost написал(а):
walerus
И? Тут кто-то говорил про латинские буквы? Автор сказал, что ему нужны русские слова, такие слова как Ёлка, а ты даёшь неправильный код и не хочешь признать исправления.
И? Тут кто-то говорил про латинские буквы? Автор сказал, что ему нужны русские слова, такие слова как Ёлка, а ты даёшь неправильный код и не хочешь признать исправления.
Спустя 11 часов, 37 секунд (6.05.2011 - 10:06) DedMorozzz написал(а):
Буква ё не входит в интервал А-я. Так же, дабы не указывать а-яА-Я, можно просто написать А-я. По очереди большие буквы идут перед маленькими, а следом маленькие.
Итого А-я это эквивалент А-Яа-я
Итого А-я это эквивалент А-Яа-я