Регулярное выражение из третьего урока тьюториала



  • Тьюториал: https://youtu.be/kW9ag7-3nDk?t=6283

    Если вдруг не начнет вовремя, то это примерно фрагмент с 1:44:43.

    Суть примера - прочитать из файла данные. Файл содержит:

    "Биография 1, строка 1
    Биография 1, строка 2"
    
    "Биография 2, строка 1
    Биография 2, строка 2"
    
    "Биография 3, строка 1
    Биография 3, строка 2"
    

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

    В тьюториале приведено регулярное выражение:

    "([^"]*)"
    

    Оно у меня прекрасно отрабатывает в онлайн-конструкторе: https://bablosoft.github.io/RegexpConstructor/#!/regexptest

    Начинаю выполнять - пусто в переменной, куда надо поместить результат.

    alt text

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

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

    Помогите, пожалуйста, разобраться, что я тут сделал не так.



  • @Nonverbis Всё дело кодировке файла, сделал сейчас тестовый скрипт, всё прекрасно работает. Кодировка файла должна быть UTF-8



  • @fox Спасибо за ответ. Так файл-то прочитан. На скриншоте видно, что с кодировкой все в порядке. Но на всякий случай я перепроверил кодировку - UTF-8. Убрал всю кириллицу, на

    "bio 3, string 1
    bio 3, string 2"" ,
    

    Все равно пусто в SCAN_RESULT_LIST.



  • @Nonverbis Ещё раз говорю, всё работает
    0_1537123384644_на форум32.gif

    Вот тестовый скрипт (директорию файла поменяй только)

    Вот текстовый файл



  • @fox Да, ваш скрипт работает. Спасибо. Буду разбираться, что с моим скриптом не так.



  • @Nonverbis В большей степени вероятности могу предположить, что вы применяли регулярное выражение к строке FILE_CONTENT, а надо было к переменной [[FILE_CONTENT]]


Log in to reply