За последние 24 часа нас посетили 16976 программистов и 1293 робота. Сейчас ищут 1409 программистов ...

Глупый вопрос, но всеже.

Тема в разделе "Регулярные выражения", создана пользователем nemis, 3 окт 2006.

  1. nemis

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

    С нами с:
    27 сен 2006
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Владивосток
    Я пытался (честно пытался) разобраться с регулярными выражениями, но пока чето невтюхаю... Правила вроде понятны, а вот составить регулярку чтобы работало - Проблемма.
    Короче трабла простая: надо из строчки вырвать все слова, (язык неопределен, но явно наверно русский и/или английский). Метод разделения слов любой, от запятой до кучи пробеллов.
    Моя идея была выделять както символы между пробелами но идея рухнала на парсинге теста "фи фи , , ц3 23 ыфыы" тобишь идея понятна? очевидно первое и последнее слово ненайдется, запятые и пустые строки еще будут... ц3 - вроде слово... так вот. КАК это сделать посоветуйте.

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

    Извините за тупость.
     
  2. Anonymous

    Anonymous Guest

    Тебе надо что то вроде этого.....
    Код (Text):
    1. <?PHP
    2. $data = 'Я пытался (честно пытался) разобраться с регулярными выражениями, но пока чето невтюхаю... Правила вроде понятны, а вот составить регулярку чтобы работало - Проблемма.
    3. Короче трабла простая: надо из строчки вырвать все слова, (язык неопределен, но явно наверно русский и/или английский). Метод разделения слов любой, от запятой до кучи пробеллов.
    4. Моя идея была выделять както символы между пробелами но идея рухнала на парсинге теста "фи фи , , ц3 23 ыфыы" тобишь идея понятна? очевидно первое и последнее слово ненайдется, запятые и пустые строки еще будут... ц3 - вроде слово... так вот. КАК это сделать посоветуйте.
    5.  
    6. И еще киньте ссылку по такому мануалу на регулярки чтобы даже умственно отсталый понял, я уже незнаю что читать чтобы понять это...
    7.  
    8. Извините за тупость.';
    9.  
    10. echo '<pre>';
    11. print_r (preg_split("/[\s,;\.:-]+/", $data));
    12. echo '</pre>';
    13. ?>
     
  3. nemis

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

    С нами с:
    27 сен 2006
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Владивосток
    ТО!! пасяб.
    а я вчера мутил какуюто другую функци... ща скажу какую... preg-match-all. неполучалось немного, плохо у меня это идет..
    Кста поясни немного
    \s - пробел,
    \. - точка
    вроде понял.. а если... пасяб..
    Всмысле если захочу если че добавить то добавлять в квадратные эти скобки... все понял...
     
  4. Lesya

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

    С нами с:
    14 авг 2006
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Запорожье
    \s - пробел либо табуляция
    . – любой символ (в символьном классе (квадратных скобках) точка – литерал)
     
  5. nemis

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

    С нами с:
    27 сен 2006
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Владивосток
    стоп.. а как тады добавить кавычки??
    Горбунов Олег ты то сам тестил?? там выдается "фи..
    \"\' вроде, но чет не пашет.... писец как плохо когда на компе не стоит апатча, а сервак тупой...
     
  6. nemis

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

    С нами с:
    27 сен 2006
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Владивосток
    Это я туплю или как?? почему выводится только "Array"
    Код (Text):
    1.  
    2. <?PHP
    3.  
    4. function my_split($str)
    5. {
    6.    return preg_split("/[\s,;\.:-]+/", $str);
    7. }
    8.  
    9.  
    10. $data = 'Я пытался (честно пытался) разобраться с регулярными выражениями, но пока чето невтюхаю... Правила вроде понятны, а вот составить регулярку чтобы работало - Проблемма.
    11. Короче трабла простая: надо из строчки вырвать все слова, (язык неопределен, но явно наверно русский и/или английский). Метод разделения слов любой, от запятой до кучи пробеллов.
    12. Моя идея была выделять както символы между пробелами но идея рухнала на парсинге теста "фи фи , , ц3 23 ыфыы" тобишь идея понятна? очевидно первое и последнее слово ненайдется, запятые и пустые строки еще будут... ц3 - вроде слово... так вот. КАК это сделать посоветуйте.
    13.  
    14. И еще киньте ссылку по такому мануалу на регулярки чтобы даже умственно отсталый понял, я уже незнаю что читать чтобы понять это...
    15.  
    16. Извините за тупость.';
    17.  
    18. echo '<pre>';
    19. $res = array(my_split($data));
    20.  foreach ($res as $val)
    21.    echo "$val \n";
    22. echo '</pre>';
    23. ?>
    мне надо чтобы функция вернула массив слов... а чето тупит.... писец я тупой....
    Сори братва нашел ошибку... (она в строчке $res = array(my_split($data)); ) убрал array и все запахало.
     
  7. Anonymous

    Anonymous Guest

    nemis я тебе решение показал.. а ты хотел что бы я тебе все разделители еще забил??
     
  8. nemis

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

    С нами с:
    27 сен 2006
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Владивосток
    нет... ща стану злым... я про то что (цитата) "В тех случая, когда нужно сопоставить выражение со строкой, в которой встречаются спецсимволы <бла бла бла>, надо поставить знак \."
    КОроче я и пишу \"\' а мне выдается
    Warning: preg_split(): Compilation failed: range out of order in character class at offset 9 in /home/ussuriin/public_html/wedis/tmp11.php on line 5
    Warning: Invalid argument supplied for foreach() in /home/ussuriin/public_html/wedis/tmp11.php on line 19
    я пишу на ПХП мало и еще толком не понимаю что это значит. ХЕЛП.... я вроде все по книжке делаю... ( return preg_split("/[\s,;\.:-\"\']+/", $str); )
     
  9. nemis

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

    С нами с:
    27 сен 2006
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Владивосток
    кажется работает, все зависело от знака -
    странно. ну да ладно ща осталось вставить туда только / и будет работать. как надо..
    Пасибо всем.... (правда / еще не пашет. но я надеюсь справлюсь сам)


    Theme closed. Все сделано
     
  10. Anonymous

    Anonymous Guest

    PHP:
    1. <?PHP
    2. $data = 'Я пытался (честно пытался) разобраться с регулярными выражениями, но пока чето невтюхаю... Правила вроде понятны, а вот составить регулярку чтобы работало - Проблемма.
    3. Короче трабла простая: надо из строчки вырвать все слова, (язык неопределен, но явно наверно русский и/или английский). Метод разделения слов любой, от запятой до кучи пробеллов.
    4. Моя идея была выделять както символы между пробелами но идея рухнала на парсинге теста "фи фи , , ц3 23 ыфыы" тобишь идея понятна? очевидно первое и последнее слово ненайдется, запятые и пустые строки еще будут... ц3 - вроде слово... так вот. КАК это сделать посоветуйте.
    5. И еще киньте ссылку по такому мануалу на регулярки чтобы даже умственно отсталый понял, я уже незнаю что читать чтобы понять это...
    6. Извините за тупость.';
    7.  
    8. echo '<pre>';
    9. print_r (preg_split('/[\s,;\.\"\'\(\)\?!:-]+/', $data));
    10. echo '</pre>';
    11. ?>
    Все работает....