2014-09-02 2 views
1

로 교체 :메모장 + + 정규식은이 같은 목록을 교체해야 ZEROFILL

105164 25 
105164 26 
105164 29 
105496 1 
105496 2 

_$1-(\w)([0-9]+)하지만 어떻게 왼쪽 제로 패딩을 수행하는 식으로 뭔가

105164_0025 
105164_0026 
105164_0029 
105496_0001 
105496_0002 

에?

+0

하나의 정규식은이를 수행 할 수 없습니다. 아마도 메모장 ++에는 열을 오른쪽 정렬 할 수있는 옵션이 있습니까? 그렇다면 정규식을 사용하여 공백 대신 숫자 0을 채울 수 있습니다. –

+0

정규 표현식으로 표현할 수없는 불규칙 언어에 대해 이야기하고 있습니다. – HuStmpHrrr

답변

5
[ ]([0-9]+) to _$1 --do your first replace 
_([0-9])$ to _000$1 
_([0-9][0-9])$ to _00$1 
_([0-9][0-9][0-9])$ to _0$1 

종류의 속임수 방법 그러나 나는 생각할 수있는 유일한 방법입니다.

+0

좋은 편집. 대괄호없이 ""사용 하겠지만 스택 오버플로에서 더 쉽게 읽을 수 있습니다. – beiller

+0

_ ([0-9]) $ ~'_000 $ 1' (밑줄) – DanFromGermany

+0

수정 됨. 또한 당신은 정말 그들을 결합하여 단지 3 교체로 이것을 할 수 있습니다. 또한 사용 가능한 경우 OR (|) – beiller

3

당신은 두 개의 패스 수행 할 수 있습니다

첫 번째 패스 : _0000$1

두 번째 패스 : _0*(\d{4})$
교체 :

가 무엇이 찾기로 교체 (\d+)$
:

무엇 찾기 다음을 포함합니다 : _$1

+0

좋은 아이디어! 화이트 공간 만 여전히 존재하거나'[] (\ d +) $'에 하나 있어야하고 잘립니다. D –

+1

@ Jonny5 : 공간은 여기에 있지만 실제로는 (\ d +) 앞에 보이지 않습니다. – Toto

관련 문제