Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка соответствия с конца строки.
 
 автор: lElectroHardl   (07.08.2010 в 18:41)   письмо автору
 
 

Есть строка из массива: "Для использования итого значения нужно". Как мне проверить, стоит ли в конце этой строки точка? Т.е. нужно проверить последние 3-5 символов.
Пытался preg_match(), но она не подходит.
А все остальные строковые функции (которыми пытался) возвращают к-во символов, а не сами символы.

  Ответить  
 
 автор: slo_nik   (07.08.2010 в 19:55)   письмо автору
 
   для: lElectroHardl   (07.08.2010 в 18:41)
 

Хотя я не силён в регулярных выражениях, но попытался сделать.
вот что получилось

<?php 
 $str 
"Для использования итого значения нужно .";
  
$pattern "|^[а-яА-Я\s]+(\.)?$|i";
   
preg_match($pattern,$str,$out);
    if(!empty(
$out[1])){echo "<br>точка есть";}
    else{echo 
"<br>точки нет";}
?>

в данном случае после точки не должно быть ни каких символов, перед точкой можно будет убрать пробел, всё равно определить есть она или нет.

  Ответить  
 
 автор: Саня   (07.08.2010 в 20:05)   письмо автору
 
   для: lElectroHardl   (07.08.2010 в 18:41)
 

А зачем 3-5 символов? У вашей строки 3-5 концов?

А вообще отрезать последний сомвол можно так:
<?
$str 
'Строка.';
if ( 
substr($str, -11) == '.' ) {
  print 
'Точка в конце найдена';
}

  Ответить  
 
 автор: Tonik992   (07.08.2010 в 20:07)   письмо автору
 
   для: lElectroHardl   (07.08.2010 в 18:41)
 

Очень странно, чем тебя не устраивает функция preg_match? Ты хочешь узнать, стоит ли вконце символ точка?
preg_match("/\.$/",$string); //ВЕрнет 1 если есть точка, 0 если нет точки...
И зачем тебе при проверки соответствия есть ли точка, вернуть эту точку?? Я так думаю, тут нужно либо true, либо false..
Используй функцию $pos = strripos($string,".");
Функция вернет позицию первой найденной точки с конца строки...
А чтобы проверить, что эта точке в конце строки, и в каком-то еще непонятном диапазоне 3-5 символов... (точка же последний символ!?)

<?php
if(strlen($string)-$pos<4) { echo "где-то есть точка в конце"; }

  Ответить  
 
 автор: neadekvat   (07.08.2010 в 20:13)   письмо автору
 
   для: lElectroHardl   (07.08.2010 в 18:41)
 

<?php
$text 
'Какой-то текст.';
if (
$text[strlen($text) - 1] == '.')
    echo 
'Точка есть. Ну и что?';

А проще сделать так:
<?php
$text 
rtrim($text'.') . '.';

Тогда в конце стопудово будет точка.

  Ответить  
 
 автор: lElectroHardl   (07.08.2010 в 20:40)   письмо автору
 
   для: neadekvat   (07.08.2010 в 20:13)
 

Саня, спасибо. Другим тоже.
Для чего проверять нужно? Т.к. дальше в скрипте проверяются все строки, где в конце стоит ".". Вот мне и нужно проверить, стоит ли в конце точка. Если нет, добавить к переменной точку.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования