본문 바로가기

정규식4

[pyhwpx] 파이썬 정규식으로 찾아바꾸기 pyhwpx.Hwp().find_replace_all(src, dst, regex=True) regex=True로 설정하면 re.sub와 동일한 방식으로 정규식 문법을 사용할 수 있다. 예를 들어 주민등록번호 패턴인 123456-1234567을 123456-1******로 변경하고자 하면, (여러가지 구현이 있겠지만) src = r"(\d{6})-(\d)\d{6}(?=\D|$)" dst = r"\g-\g******" hwp.find_replace_all(src, dst, regex=True) 라고 코드를 입력하고 실행해보자. 시연화면은 아래와 같다. 정규식 찾아바꾸기 시연화면 바뀌기 전의 원본문서는 아래와 같고 정규식 찾아바꾸기를 적용한 후의 문서는 아래와 같다. 메서드 내부에서는 re.sub를 사용하지.. 2024. 1. 23.
1. 가장 기본이 되는 중요한 패턴 "..." 정규식을 사용하는 가장 많은 사용사례는 "패턴이 일치하는가"를 조사하는 것입니다. 정규식에서 패턴은 "정규식으로 쓰여진 검색표현"을 뜻합니다. 이게 무슨 의미냐면 한 문서 안에 다양한 길이의 숫자들로만 구성되어 있다고 할 때, 우리는 (띄어쓰기나 줄바꿈 등으로 구분된) 세 자리의 숫자만 찾고 싶다고 가정하겠습니다. 일반적인 검색의 경우에는 001~999까지 숫자를 직접 결정해야 하기 때문에 모든 경우를 찾아내려면 999번을 반복해야 합니다. 하지만 정규식이면 단 한 번에 모든 탐색을 끝낼 수 있습니다. 바로 "..."을 통해서요. 말줄임표가 아니고, 엄연한 정규식입니다... 한 번 예를 들어볼까요? 아래와 같은 임의의 문서 중에서 세 자리 숫자를 전부 찾아서 출력하고 싶습니다. 예시 코드를 먼저 보여드리.. 2023. 1. 2.
문자열 탐색 중 가장 강력한 방법인 정규표현식 이 포스팅 시리즈는 정규식이 너무 어렵게 느껴져 학습을 포기한 분을 대상으로 한 튜토리얼입니다. 한/글이나 엑셀에서 찾기나 찾아바꾸기를 해 보셨다면, 이런 생각 해 보지 않으셨나요? 예를 들면 10, 11, 12, 13... 줄줄이 찾아바꾸지 말고 "숫자 두 자리"라고 검색하는 방법은 없을까? 이런 경우에 정규표현식(이하 정규식)이 적절한 방법이 될 수 있습니다. 아래와 같은 경우에도 정규식이 해결해줄 수 있습니다. 문단 앞에 붙은 (1), (2), (3), (4)...를 [1], [2], [3], [4]...로 간편하게 바꿀 방법은 없을까? 이밖에도 정규식을 사용해야 하는 수많은 사례가 있습니다. 다만, 정규식을 잘 쓰지 않는 이유가 몇 가지 있는데, ① 많은 경우 파이썬의 문자열 메서드 등의 조합을 .. 2023. 1. 2.
[파이썬-한/글 자동화] 한/글파일로 정규식 찾아바꾸기(re) 소스코드 및 예제파일(깃헙) martinii-fun/hwp-automation 파이썬-아래아한글 자동화 튜토리얼 코드모음(유튜브채널 회사원코딩). Contribute to martinii-fun/hwp-automation development by creating an account on GitHub. github.com """ 아래아한글 내에서 "정규식으로 찾기"는 가능하지만 "정규식으로 찾아바꾸기"는 불가능하다. 미묘한 차이 같지만, 이런 경우를 생각해보자. 주민등록번호나 법인등록번호처럼 "여섯자리숫자-일곱자리숫자(예:321012-1234567) 양식을 321012-1****** 처럼 뒤의 여섯자만 *로 마스킹을 하고 싶을 때, 아래아한글의 찾아바꾸기를 이용하려면 조금 번거롭다.. 1. 정규식으로 \.. 2020. 4. 15.