2016-07-17 2 views
2

У меня есть документ с большим количеством распространенных SHA256 в нем.regex удалить все, кроме sha256 notepad ++

Я хочу сохранить только SHA256 (допустим, в нем есть 500 sha256) и удалить весь другой текст.

Например:

asdasd 59A412341527D3F10BCBAD26536428772144767D5325710B245367505B0D8024 obe\read 
Lsdfsdf 21A410631527D3F10BCBAD26536428772144767D5325710B2F9D668057864444 c:\pr0 

К

21A410631527D3F10BCBAD26536428772144767D5325710B2F9D668057864444 
59A412341527D3F10BCBAD26536428772144767D5325710B245367505B0D8024 

У меня есть часть, но я не могу управлять, чтобы сохранить только Ша-х, то, что я в настоящее время является регулярным выражением [a-zA-Z0-9]{64}, который находит все строки которые имеют 64 буквы.

Возможно, мы удалим нижний регистр a-z, так как sha почти никогда не использует строчные буквы.

спасибо, я пробовал методы, которые я видел на форумах, но не мог заставить его работать.

+0

Как насчет ['\ b [A-Z \ d] {64} \ b'] (https://regex101.com/r/dY7wO9/1)? –

+0

Используйте ['(\ b [AZ \ d] {64} \ b) | (?: (?! \ B [AZ \ d] {64} \ b).) *'] (Https: // regex101. com/r/dY7wO9/1) и заменить «$ 1», лучше? –

+0

Возможный дубликат [Learning Regular Expressions] (http://stackoverflow.com/questions/4736/learning-regular-expressions) –

ответ

0

Использование

(\b[A-Z\d]{64}\b)|(?:(?!\b[A-Z\d]{64}\b).)* 

и заменить $1.

Деталь:

  • (\b[A-Z\d]{64}\b) - Захват группа 1 соответствует 64 символов, заглавные буквы или цифры, как целые слова из-за того, что есть границы слов вокруг подшаблона
  • | - или
  • (?:(?!\b[A-Z\d]{64}\b).)* - любой другой текст до первого вхождения первого подшаблона.
Смежные вопросы