2017-02-11 8 views
0

나는 내 자신의 정규식을 공식화하는 것에 상당히 새로운 것으로서 가능한 질문을 용서한다. 그리고 나는 지난 시간에 그렇게 해왔다. 다른 문자로 둘러싸여 있지 않은 숫자 시퀀스를 찾기위한 ST3 정규식

은 내가 숭고한 텍스트 3에 내가 포위되지 모든 2-4 자리 시퀀스을 식별하는 기능을 ST의 검색에서 정규 표현식을 사용하고 교체를 시도하고있어 함께 일하고 있어요 거대한 텍스트 파일이 다른 문자로는입니다.

이 다음과 같은 순서를 식별합니다 :

01 
330 
0302 

을 그리고 다음 무시 : 내 문서의 맥락에서

1 
10405 
3042-2 
(3030 
x5590 

는 다른 문자로 둘러싸인되지 않는 일련의 본질적에 기존의 의미 자체 회선.

2 ~ 4 자리 시퀀스가 ​​자체 행에 있으면 식별해야합니다. 그렇지 않은 경우 또는 < 2 또는 5 자리 이상인 경우 혼자 남겨 두어야합니다.

내가 지금까지 가지고 올 수 있었던 가장은 이것이다 : 충분히 그 시퀀스의 식별을 위해 작동하지만,하지

\b\n[0-9]{2,4}\n\b

가 ... 실제로 보이지 바꾸기를 클릭하거나 바로 가기를 누르십시오. Ctrl + Shift + H은 시퀀스를 강조 표시 한 다음 계속 진행하는 것처럼 보입니다. 이 내가 사용하고있는 정규식에 문제가 있다면, 그밖에 나는 무엇을 사용할 수 있습니까?

답변

1

난 당신이 요구하는 것을 너무 명확하지 않다,하지만 당신은 한 줄에 단독으로 2-4 숫자를 일치시킬 경우,이 그것을해야

^[0-9]{2,4}$ 
^를 일치하는 라인의 시작

, $ 일치

당신이 선행 또는 후행 공백을 허용 할 경우를 종료, 당신이 할 수있는이

^[ ]*[0-9]{2,4}[ ]*$ 

당신이로 텍스트를 바꾸시겠습니까? 일치하는 텍스트와 전체 줄을 지우고 싶다면 다음과 같이하면됩니다.

^[0-9]{2,4}$\n 

이것은 줄 바꿈을 포함한 전체 줄과 일치합니다.

또는 괄호

^([0-9]{2,4})$ 

와 일치하는 텍스트를 캡처하고이 같은 대체 할 수있는이

foo$1bar 

$ 1은 (...)에 어떤이다.이것은 당신에게 줄 것이다

foo01bar 
foo330bar 
foo0302bar 

And ignore the following: 

1 
10405 
3042-2 
(3030 
x5590 
+0

나는 나의 예와 함께 묻고있는 것을 약간 잘못 이해했을지도 모른다. 그러나 결코 신경 쓰지 마라. 이 대답은 완벽합니다. 첫 번째 정규식은 내가 요구 한 바에 정확히 답하고,'\ n'을 사용하는 두 번째 것은 더 나아가서 첫 번째 해결책 - 그리고 내 자신 -이 남긴 빈 줄을 지우는 추가 단계를 생략합니다. 정말 고마워. – Hashim