2017-12-27 27 views
0

반환 문자열에 문제가있는 공백을 제거하려면 어떻게합니까? Excel에서 셀 내 기능을 사용하고 있으며 특정 텍스트를 찾아 동일한 문자열의 다른 위치로 이동시키는 문자열이 있습니다.정규식 바꾸기 (Excel VBA) - 그룹에서 공백 제거

제거 방법을 찾을 수없는 여분의 공백이 포함되어 있다는 것을 제외하고는 결과가 좋았습니다. 나는 그것이 당신을 위해 간단하다고 확신하지만 정규 표현식과 학습에 처음이다.

샘플 텍스트 문자열 :

999999 - Blah Blah Blah 8888 blah blah 

원하는 결과는 다음과 같습니다

999999 (8888) - Blah Blah Blah blah blah 

내 실제 결과는 여기에

999999 (8888) - Blah Blah Blah blah blah 

입니다 (3 ㅋ에서 여분의 빈 공간에주의) 내 현재 관련 코드 :

strPattern = "^(\d{6})(\-)(\D+)(\d{4})" 
strReplace = "$1($4) $2$3" 

누군가가 내 strPattern 정의 및/또는 strReplace 정의를 통해이 문제를 해결하는 방법을 배우도록 도와 줄 수 있습니까?

감사합니다.

+0

'strReplace'에서 공백을 제거하고'strPattern'의 마지막 그룹에 하나를 더합니다. –

답변

1

당신은 가능한 옵션 공백 문자 전에 적은 숫자가 아닌 문자와 일치하도록 정규식 패턴을 조정할 수 있습니다

^(\d{6})(-)(\D*?)\s*(\d{4}) 
       ^^^^^^ 

regex demo

세부

  • ^을 참조하십시오 - 문자열의 시작
  • (\d{6}) - 그룹 1 : 여섯 자리
  • (-) - 그룹 2 : 하이픈과 공간
  • (\D*?) - 그룹 3 : 어떤 0+ 문자가 숫자가 아닌, 그러나 가능한 한 적은 수의 *? 정량 게으른 같이합니다 (네 자리 숫자 : - 0+ 공백 문자
  • (\d{4}) - 그룹 4 정량화 된 패턴 만 해당)
  • \s*을 시도하고 이후의 패턴이 일치하지 않을 때 확장됩니다.