정규식(뒤돌아보기?)

정규식(뒤돌아보기?)

이것을 돌려야 합니다:

zz  zz zz   zzzzYzzzzXzzzz zz     zzzzzz                zzzz zzYzz

이것에:

1Y1X1Y1

한 번에 급습하는 것이 좋습니다.

zz\s*zz좋지만 필요한 것을 얻으려면 여러 번 실행해야 합니다.

페어(Pair)는 z의 최소 단위입니다.

zz는 공백(탭, 공백)의 조합과 숫자로 서로 구분됩니다.

X와 Y는 z와 공백을 제외한 모든 문자열이 될 수 있습니다.

공백은 항상 zz로 둘러싸여 있습니다(그리고 Y 및 X 문자열 안에 있습니다).

VBA 호환 구문을 사용하는 것이 가장 좋습니다.

답변1

GNU sed에서 다음을 사용하여 수행할 수 있습니다.

sed -r 's/[z ]+/1/g'

그것이 원하는 것이 아니라면 질문을 편집하여 원하는 것을 더 명확하게 설명하십시오.

답변2

VBA 코드는 아래 코드와 유사합니다.

Sub test()
MsgBox ReplaceIt("zz  zz zz   zzzzYzzzzXzzzz zz     zzzzzz                zzzz zzYzz")
End Sub

Function ReplaceIt(strIn As String) As String
Dim RE As Object
Set RE = CreateObject("VBScript.RegExp")
RE.Pattern = "[z ]+"
RE.Global = True
ReplaceIt = RE.Replace(strIn, "1")
End Function

다음은 Word에서 실행한 이 예제의 결과입니다.

여기에 이미지 설명을 입력하세요

관련 정보