Регулярные выражения Как добавить совпадения из необработанного строкового текста в список - PullRequest
0 голосов
/ 16 февраля 2020

Здравствуйте, у меня есть грязный текст, который я не могу обработать любым хорошим способом, и я хочу сопоставить все почтовые индексы 5 di git чисел из необработанной строки, а затем добавить их в список. Моя строка выглядит примерно так:

string = '''
         January 2020
          Zip Code                                                                                            
           Current Month
        Sales Breakdown
      (by type)
              Last Month                Last Year     Year-to-Date
         95608
         Carmichael
         95610
        Citrus Heights
        95621
        Citrus Heights
         95624
         Elk Grove
         95626
         Elverta
         95628
         Fair Oaks
          95630
           Folsom
          95632
         Galt
        95638
        Herald
        95641
         Isleton
         95655
        Mather
       95660
        North Highlands
        95662
        Orangevale
            Total Sales                                                                                         
         43               REO Sales 0                                                      45                
        40                             43
           Median Sales Price                                                             $417,000             
                  $0                                      $410,000                 $400,000     
        $417,000
        '''

1 Ответ

0 голосов
/ 17 февраля 2020

Это можно сделать с помощью re.findall и регулярного выражения \b\d{5}\b или даже просто \d{5}. Давайте рассмотрим пример:

import re

string = '''
         January 2020
          Zip Code                                                                                            
           Current Month
        Sales Breakdown
      (by type)
              Last Month                Last Year     Year-to-Date
         95608
         Carmichael
         95610
        Citrus Heights
        95621
        Citrus Heights
         95624
         Elk Grove
         95626
         Elverta
         95628
         Fair Oaks
          95630
           Folsom
          95632
         Galt
        95638
        Herald
        95641
         Isleton
         95655
        Mather
       95660
        North Highlands
        95662
        Orangevale
            Total Sales                                                                                         
         43               REO Sales 0                                                      45                
        40                             43
           Median Sales Price                                                             $417,000             
                  $0                                      $410,000                 $400,000     
        $417,000
        '''

regex = r'\b\d{5}\b'

zip_codes = re.findall(regex, string)

Тогда вы можете получить каждый код из zip_codes. Я рекомендую вам прочитать документацию и Регулярное выражение HOWTO . Существуют интересные инструменты для написания и тестирования регулярных выражений, такие как Regex101 .

Я также рекомендую вам, чтобы в следующий раз, когда вы спросите, изучите немного самостоятельно, а затем попробуйте сделать то, что вы хотите, а затем, если у вас есть проблема, попросите эту конкретную c проблему. Страница справки Как мне задать хороший вопрос? и Как создать минимальный воспроизводимый пример может помочь вам написать хороший вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...