2013-04-12 1 views
0

시간과 뇌의 힘을 공헌하는 모든 사람들에게 모자를 씌워주세요. 저는 자원이 거의없는 버마어 본문과 함께 일하고 있습니다. 정규식을 사용하여 버마어 문자의 너비가 0 인 공백을 삽입

유니 코드에서 유니 코드 텍스트의 열에서 확인 작업을 linebreaking 만들려면

, 나는 다음과 같은 상황에서 제로 폭 공간 (ZWSP)를 삽입하는 정규 표현식을 [유 (200B)를 \] 컴파일하고 싶습니다 :

즉시 유니 코드 문자의 임의의 예 ranɡe 전에 ZWSP 삽입 [\ u1000- \ u1021] 캐릭터 [\ u103A] 뒤에

  • 않는 한

또는

  • 바로 앞의 문자는 유니 코드 문자 [\ u1000- \ u1021] 또는 [\ u1039]의 동일한 범위 중 하나 (그리고 아마도 하나 또는 두 개의 다른 내가 나중에 추가해야 할 수 있습니다)입니다 .

아무도 도와 줄 수 있습니까? UltraEdit에서 텍스트의 큰 코퍼스로 작업하는 Find/Replace를 할 것입니다. 문자열

\1\x{200B}\2

에게 대체 사용

+0

이것은 다소 간단하게 들리므로 시도한 것을 보여주십시오. 그렇지 않으면 이미 시도한 것을 반복 할 수 있습니다. –

답변

0

펄 정규 표현식 검색 문자열

([^\x{1000}-\x{1021}\x{1039}])([\x{1000}-\x{1021}])(?!\x{103A})

모든 요구 사항과 일치합니다. 검색 문자열에 대한

설명 :

([^\x{1000}-\x{1021}\x{1039}])는 임의의 문자가 1,021 16 진수 범위 1000의 코드 값을 가지지 않는 16 진수 코드 값 1039 및 태그 다시에 의해 참조하기위한이 문자와 문자되지 일치 이 문자는 보관해야하므로 replace 문자열에 \1이라는 표현이 있어야합니다.

([\x{1000}-\x{1021}])은 범위 0x1000에서 0x1021 사이의 코드 값을 갖는 모든 문자와 일치하며이 문자를 유지해야하므로 바꾸기 문자열에서 \2 표현으로 역 참조 할 때이 문자에 태그를 지정합니다.

(?!\x{103A})은 다음 문자가 16 진수 코드 값 103A를 가지고 있지 않은지 확인하는 부정적인 표정 식입니다. 바꾸기 문자열

설명 :

\1 참조 첫 번째 검색 문자열에 그룹을 표시하여 볼 수있는 캐릭터.

\x{200B}은 삽입 할 너비가 0 인 공백을 지정합니다.

\2은 검색 문자열에서 두 번째 마킹 그룹에 의해 발견 된 문자를 참조합니다.

관련 문제