Как мне распечатать результаты хэш-ключа с использованием регулярных выражений

#python #python-2.7

#python #python-2.7

Вопрос:

Я пытаюсь выполнить поиск хэш-ключа с помощью re.search и распечатать результат.

Я перепробовал несколько критериев поиска, но он ничего не возвращает.

Строка поиска:

 FLASHhashval.key        234      -A7B865C48E-
  

Строка для получения нужного мне значения

 match = re.search(r'^FLASH\hashval.key. s (-w -)s ', line)
  

Фрагмент кода

     def _test_hashval_key(self):
        '''
        Verify that the hashval.key is correct in the DRP.
        '''
        tid = 'HashVal'
        cmd = 'drpmrs dev=/dev/ro2 filelist'
        sts, out = runcmd(cmd)
        fnd = False
        for line in out.split('n'):
            line = line.strip()
            #FLASHhashval.key        234      -A7B865C48E-
            match = re.search(r'^FLASH\hashval.key. s (-w -)s ', line)
            if match:
                hash = match.group(1)
                print hash()
                fnd = True
                val = -A7B865C48E-
                val1 = -EDA6384F89-
                val2 = -BF384513DC-
                if val == hash:
                    self._passed(tid, 'hashval.key sys: %s'  % (hash))
                if val1 == hash:
                    self._passed(tid, 'hashval.key prd: %s'  % (hash))
                if val2 == hash:
                    self._passed(tid, 'hashval.key crp: %s'  % (hash))
            if not match:
                self._failed(tid, 'hashval.key not found')
  

Это то, что я хотел бы показать в качестве примера:

 
Test:14 HashVal: crp -A7B865C48E-
  

Комментарии:

1. Просто удалите s в конце, оно не будет соответствовать, если в конце строки нет пробела.

2. hash() неизвестный и val = -A7B865C48E- val1 = -EDA6384F89- val2 = -BF384513DC- все незаконные python…

3. Спасибо Тьерри и Патрику. Я удалил s , но он по-прежнему ничего не возвращает.

Ответ №1:

Я смог определить правильное регулярное выражение

match = re.search(r'^FLASH\hashval.key.s (.*)-', line)