Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Шаблон для текста, Шаблон для текста городов
casper - gg  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Пользователь
Сообщений: 216
Пользователь №: 42190
На форуме: 1 год, 7 месяцев, 16 дней
Карма: 10




Некоторые из возможных вариантов строк:
Цитата

Чебурахово
пгт Чебурахово
пгт. Чебурахово
пгт.Чебурахово

Чебурашинский р-н/пгт Чебурахово
и т.п.


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

preg_match( "/^ (?:*//)* (*)+ $/",  $string, $out );


$out[1] - это ж значение из этого (*)+, по идее?

Это сообщение отредактировал casper - gg - 15.03.2016 - 21:26
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
casper - gg  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Пользователь
Сообщений: 216
Пользователь №: 42190
На форуме: 1 год, 7 месяцев, 16 дней
Карма: 10




первый не работает, вот так вроде работает:


preg_match( "#^([^/]+[/]+)*([^/]+)+$#ui", $string, $out );
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
s-log  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 1
Пользователь №: 42741
На форуме: 1 год, 3 месяца, 25 дней
Карма:




Почему бы не взять последнее слово в строке?


$string = 'Retrieving the last word of a string using PHP.';
$last_word_start = strrpos($string, ' ') + 1; // +1 so we don't include the space in our result
$last_word = substr($string, $last_word_start); // $last_word = PHP.


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26438
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 6 дней
Карма: 739




preg_match("#([\-а-яё]*)$#iuU", $str, $m);


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
casper - gg  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Пользователь
Сообщений: 216
Пользователь №: 42190
На форуме: 1 год, 7 месяцев, 16 дней
Карма: 10




Цитата (s-log @ 25.03.2016 - 12:44)
Почему бы не взять последнее слово в строке?

Цитата (Игорь_Vasinsky @ 25.03.2016 - 13:50)
preg_match("#([\-а-яё]*)$#iuU", $str, $m);


спасибо, прокручу эти варианты, ... с exel файла читается 10т. строк,... неизвестно какие варианты могут встречаться, со слэшем или без или еще что. Правда нужная фраза может состоять из двух последних слов, а может из одного и может быть перед слэшем если есть слово "район". Пока что вот это работает, но буду думать над упрощением шаблона:

preg_match( "#^([^\s]+[\s]+район/)*(?:[^/]+[/]+[\s]*)*([^/]+)+$#ui", $res, $out );
$reg = !empty( $out[1] ) ? trim( $out[1], '/' ) : $out[2];


Это сообщение отредактировал casper - gg - 25.03.2016 - 19:15
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26438
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 6 дней
Карма: 739




моя регулярка выташит последнее слово в строке, либо 2 (и более) через дефис

г.Харьков
г. Гусь-Хрустальный


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса