Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: Как делать поиск по шаблону python поиск?

  1. Как делать поиск по шаблону python поиск?

    Всем привет! Пытаюсь реализовать поиск по шаблону в Python’е, но что-то у меня не получается. У меня есть список строк, и я хочу найти строки, которые соответствуют определенному шаблону. Как это лучше сделать? Может, кто-то сталкивался с чем-то подобным и может подсказать оптимальное решение? Буду рад примерам кода и любым советам. Спасибо!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! Для поиска по шаблону обычно используют регулярные выражения. Вот пример, как это можно сделать:

    Программный код:
    import re

    def search_pattern
    (patterntext_list):
    regex re.compile(pattern)
    return [
    text for text in text_list if regex.search(text)]

    if 
    __name__ == "__main__":
    texts = ["hello world""hi there""hey buddy""greetings"]
    pattern r'^h.*d$'
    matched_texts search_pattern(patterntexts)
    print(
    matched_texts
    В этом примере ищутся строки, которые начинаются с 'h' и заканчиваются на 'd'. Надеюсь, это поможет!

  4. Цитата Сообщение от Elefant
    Привет! Для поиска по шаблону обычно используют регулярные выражения. Вот пример, как это можно сделать:

    Программный код:
    import re

    def search_pattern
    (patterntext_list):
    regex re.compile(pattern)
    return [
    text for text in text_list if regex.search(text)]

    if 
    __name__ == "__main__":
    texts = ["hello world""hi there""hey buddy""greetings"]
    pattern r'^h.*d$'
    matched_texts search_pattern(patterntexts)
    print(
    matched_texts
    В этом примере ищутся строки, которые начинаются с 'h' и заканчиваются на 'd'. Надеюсь, это поможет!
    Да, регулярки - это мощно, но не всегда понятны. Надо больше практиковаться!

  5. Yo, можно еще через глоб попробовать, хотя для твоей задачи лучше регулярки. Почитай про модуль `fnmatch` в Python:

    Программный код:
    import fnmatch

    def search_pattern
    (patterntext_list):
    return 
    fnmatch.filter(text_listpattern)

    if 
    __name__ == "__main__":
    texts = ["hello world""hi there""hey buddy""greetings"]
    pattern '*h*e*'
    matched_texts search_pattern(patterntexts)
    print(
    matched_texts
    Например, этот код ищет строки, содержащие 'h' и 'e'.

  6. Цитата Сообщение от sem
    Yo, можно еще через глоб попробовать, хотя для твоей задачи лучше регулярки. Почитай про модуль `fnmatch` в Python:

    Программный код:
    import fnmatch

    def search_pattern
    (patterntext_list):
    return 
    fnmatch.filter(text_listpattern)

    if 
    __name__ == "__main__":
    texts = ["hello world""hi there""hey buddy""greetings"]
    pattern '*h*e*'
    matched_texts search_pattern(patterntexts)
    print(
    matched_texts
    Например, этот код ищет строки, содержащие 'h' и 'e'.
    Чувак, это классно, но fnmatch в основном для имён файлов. Хотя идея неплохая!

  7. Можно еще юзать библиотеку `glob` для поиска файлов по шаблону. Но для строк точно регулярки рулят! Попробуй такой код для разнообразия:

    Программный код:
    import re

    def search_pattern
    (patterntext_list):
    regex re.compile(pattern)
    return list(
    filter(regex.searchtext_list))

    if 
    __name__ == "__main__":
    texts = ["hello world""hi there""hey buddy""greetings"]
    pattern r'.*h.*e.*'
    matched_texts search_pattern(patterntexts)
    print(
    matched_texts
    Этот подойдет для поиска слов, где есть и 'h', и 'e'.

  8. Цитата Сообщение от МалахитовыйВзгляд
    Можно еще юзать библиотеку `glob` для поиска файлов по шаблону. Но для строк точно регулярки рулят! Попробуй такой код для разнообразия:

    Программный код:
    import re

    def search_pattern
    (patterntext_list):
    regex re.compile(pattern)
    return list(
    filter(regex.searchtext_list))

    if 
    __name__ == "__main__":
    texts = ["hello world""hi there""hey buddy""greetings"]
    pattern r'.*h.*e.*'
    matched_texts search_pattern(patterntexts)
    print(
    matched_texts
    Этот подойдет для поиска слов, где есть и 'h', и 'e'.
    Неплохо! Но все равно сложно с этим regex. Надо разбираться.

  9. Забыли упомянуть про `namedtuples` для более структурированных данных. Хотя может и перегружаю)):

    Программный код:
    import re
    from collections import namedtuple

    TextEntry 
    namedtuple('TextEntry', ['id''text'])

    def search_pattern(patternentries):
    regex re.compile(pattern)
    return [
    entry for entry in entries if regex.search(entry.text)]

    if 
    __name__ == "__main__":
    texts = [TextEntry(1"hello world"), TextEntry(2"hi there"), TextEntry(3"hey buddy"), TextEntry(4"greetings")]
    pattern r'he'
    matched_texts search_pattern(patterntexts)
    for 
    entry in matched_texts:
    print(
    f"ID: {entry.id}, Text: {entry.text}"
    Например, этот код ищет строки, где встречается 'he'.

  10. Цитата Сообщение от Adrey64
    Забыли упомянуть про `namedtuples` для более структурированных данных. Хотя может и перегружаю)):

    Программный код:
    import re
    from collections import namedtuple

    TextEntry 
    namedtuple('TextEntry', ['id''text'])

    def search_pattern(patternentries):
    regex re.compile(pattern)
    return [
    entry for entry in entries if regex.search(entry.text)]

    if 
    __name__ == "__main__":
    texts = [TextEntry(1"hello world"), TextEntry(2"hi there"), TextEntry(3"hey buddy"), TextEntry(4"greetings")]
    pattern r'he'
    matched_texts search_pattern(patterntexts)
    for 
    entry in matched_texts:
    print(
    f"ID: {entry.id}, Text: {entry.text}"
    Например, этот код ищет строки, где встречается 'he'.
    Интересно! Использование namedtuple выглядит профессионально, но, возможно, для кого-то это overkill.

Страница 1 из 2 12 ПоследняяПоследняя