За последние 24 часа нас посетили 51117 программистов и 1756 роботов. Сейчас ищут 1019 программистов ...

Определить разделитель текста

Тема в разделе "PHP для новичков", создана пользователем denism300, 30 ноя 2016.

  1. denism300

    denism300 Новичок

    С нами с:
    25 фев 2016
    Сообщения:
    39
    Симпатии:
    4
    входные данные могут быть трех видов:
    1. без разделителя, в одно слово (например, "abc")
    2. в качестве разделителя пробел (например, "abc def")
    3. в качестве разделителя запятая и пробел (например, "abc, def")

    в зависимости от разделителя данные обрабатываются по разному. собственно, вопрос: как определить, какой разделитель используется?
     
  2. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    А пробелы и запятые могут использоваться совместно в одном запросе?
     
  3. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Знать бы еще, какие символы могут быть разделителями...
    PHP:
    1. <?php
    2. $delimiter = false;
    3. if(preg_match('/[\pP\s]+/', $str, $matches)) {
    4.     $delimiter = $matches[0];
    5. }
    --- Добавлено ---
    Протёр глаза и прояснилось.
    PHP:
    1. function determine_delimiter ($str = ''){
    2.    return preg_match('/[,\s]+/', $str, $matches) ? $matches[0] : false;
    3. }
    4. foreach(['abc', 'abc def', 'abc, def'] as $val) {
    5.    $delimiter = determine_delimiter($val);
    6.    echo '"', $delimiter , '"  символов - ', strlen($delimiter) , PHP_EOL;  
    7. }
    8. /*
    9. ""  символов - 0
    10. " "  символов - 1
    11. ", "  символов - 2
    12. */
     
    #3 Deonis, 30 ноя 2016
    Последнее редактирование: 30 ноя 2016
    denism300 и topas нравится это.