본문 바로가기

반응형

분류 전체보기

(654)
[ Python ] 정규표현식에서 다중 패턴으로 전방 탐색하기 파이썬 정규표현식에서 전방 탐색 기능을 사용하여 다중 패턴을 검색할 수 있습니다. 이를 통해 여러 조건을 동시에 만족하는 문자열을 찾을 수 있습니다. 전방 탐색을 여러 번 사용하면 다중 조건을 적용할 수 있습니다.1. 예제다음 예제는 전방 탐색을 사용하여 문자열에서 "apple" 또는 "banana"가 뒤따르는 단어를 찾는 방법을 보여줍니다.import retext = "I have an apple pie and a banana split. I also have a cherry tart."# 긍정 전방 탐색을 사용한 다중 패턴 검색pattern = re.compile(r'\b\w+(?=\s(?:apple|banana))')matches = pattern.findall(text)print("Matches ..
[ Python ] 정규 표현식에서 전방 탐색 기능에 대해서 알아보기 파이썬 정규 표현식에서 전방 탐색(Lookahead)은 특정 패턴이 특정 부분 문자열 앞에 있는지를 확인하지만, 그 부분 문자열을 소비(consumption)하지 않는 기능입니다. 이는 문자열의 매칭을 특정 조건에 따라 제한할 때 매우 유용합니다. 전방 탐색은 긍정 전방 탐색(positive lookahead)과 부정 전방 탐색(negative lookahead)으로 나뉩니다.1. 긍정 전방 탐색 (Positive Lookahead)긍정 전방 탐색은 특정 패턴이 뒤따르는 경우에만 매칭을 허용합니다. 구문은 (?=...)입니다.예제:패턴 A(?=B)는 B가 뒤따르는 A를 매칭합니다. 하지만 B는 매칭 결과에 포함되지 않습니다.2. 부정 전방 탐색 (Negative Lookahead)부정 전방 탐색은 특정 ..
[ Python ] match() 에서 표현식 (?? vs *? vs +?) 설명과 예제 파이썬 정규표현식에서 expr??, expr*?, expr+?의 차이는 패턴의 매칭 방식과 반복 횟수에 관련된 non-greedy 매칭을 제어하는 방법입니다. 아래는 각 표현식의 설명과 예제입니다.1. 설명expr??:expr?는 expr이 0번 또는 1번 나타나는 경우를 매칭합니다.expr??는 가능한 한 적게 매칭하려고 시도합니다. 즉, expr이 있으면 0번 나타나는 경우를 우선적으로 매칭합니다.expr*?:expr*는 expr이 0번 이상 나타나는 경우를 매칭합니다.expr*?는 가능한 한 적게 매칭하려고 시도합니다. 즉, expr이 없는 경우를 우선적으로 매칭합니다.expr+?:expr+는 expr이 1번 이상 나타나는 경우를 매칭합니다.expr+?는 가능한 한 적게 매칭하려고 시도합니다. 즉,..
[ Python ] match() 사용시 Greedy vs Non-Greedy 설명과 예제 파이썬에서 정규 표현식(regex)을 사용할 때, greedy와 non-greedy 매칭 방식의 차이는 매우 중요합니다. 이 두 가지 방식은 패턴이 가능한 한 많이 혹은 적게 매칭되는지를 결정합니다.1. Greedy (탐욕적) 매칭Greedy 매칭은 가능한 한 많이 매칭하려고 시도합니다. 기본적으로 정규 표현식의 메타 문자 *, +, ? 등은 greedy 방식입니다.예:패턴 .*는 가능한 한 많은 문자를 매칭합니다.2. Non-Greedy (비탐욕적) 매칭Non-Greedy 매칭은 가능한 한 적게 매칭하려고 시도합니다. 메타 문자 뒤에 ?를 붙여서 non-greedy 방식으로 만들 수 있습니다.예:패턴 .*?는 가능한 한 적은 문자를 매칭합니다.3. 예제다음은 greedy와 non-greedy 매칭의 차..
[ PM2 ] PM2 기본 사용법 알아보기 PM2는 Node.js 애플리케이션을 관리하는 인기 있는 프로세스 관리자입니다. PM2를 사용하면 애플리케이션을 쉽게 시작하고, 중지하고, 재시작하고, 모니터링할 수 있습니다. 기본적인 사용법은 다음과 같습니다:1. PM2 설치먼저 PM2를 글로벌로 설치합니다:sudo npm install pm2 -g2. 애플리케이션 시작PM2로 Node.js 애플리케이션을 시작하려면 pm2 start 명령을 사용합니다. 예를 들어 app.js 파일을 실행하려면:pm2 start app.js3. 애플리케이션 상태 확인실행 중인 애플리케이션의 상태를 확인하려면 pm2 status 명령을 사용합니다:pm2 status4. 애플리케이션 로그 보기실행 중인 애플리케이션의 로그를 실시간으로 보려면 pm2 logs 명령을 사용합니..
[ Python ] re.sub()를 사용해서 텍스트 교체하기 re.sub 함수는 파이썬의 re 모듈에서 제공하는 함수 중 하나로, 정규 표현식과 일치하는 문자열을 다른 문자열로 교체하는 데 사용됩니다. 이 함수는 일치하는 모든 부분을 한 번에 교체하며, 매우 강력한 문자열 조작 도구입니다.1. re.sub 함수의 사용법import reresult = re.sub(pattern, repl, string, count=0, flags=0)pattern: 정규 표현식 패턴입니다.repl: 교체할 문자열입니다.string: 검색할 문자열입니다.count: 선택적 인수로, 교체할 최대 횟수를 지정합니다. 기본값은 0이며, 이는 모든 일치 항목을 교체하는 것을 의미합니다.flags: 선택적 인수로, 정규 표현식의 동작을 수정하는 플래그입니다.2. 기본 예제import re# ..
[ Python ] 글 작성시 흔히 하는 실수를 정규 표현식으로 찾기 문서 작성 시 반복되는 단어(예: "the the")를 찾아내는 것은 정규 표현식을 사용하여 쉽게 처리할 수 있습니다. 이러한 실수는 흔히 발생하며, 정규 표현식을 사용하여 이를 찾아내고 수정할 수 있습니다.다음은 파이썬의 re 모듈을 사용하여 반복되는 단어를 찾아내는 방법에 대한 설명과 예제입니다.1. 정규 표현식 패턴 설명반복되는 단어를 찾기 위해 사용할 정규 표현식 패턴은 다음과 같습니다:\b(\w+)\b\s+\1\b이 패턴의 각 부분은 다음을 의미합니다:\b: 단어 경계(Word boundary)를 의미합니다.(\w+): 하나 이상의 단어 문자(알파벳, 숫자, 밑줄)와 일치하며, 이 일치 부분을 첫 번째 캡처 그룹에 저장합니다.\s+: 하나 이상의 공백 문자와 일치합니다.\1: 첫 번째 캡처 그룹..
[ Python ] re.findall()과 group() 메서드 사용하기 re.findall() 함수와 group() 메서드를 함께 사용하는 것은 일반적으로 일치하는 모든 패턴의 서브그룹을 추출할 때 유용합니다. re.findall() 함수는 모든 일치 항목을 리스트로 반환하며, 각 항목은 문자열이거나 튜플일 수 있습니다.1. re.findall()과 group()의 차이점re.findall(): 주어진 패턴과 일치하는 모든 문자열을 리스트로 반환합니다. 패턴에 그룹이 있다면, 그룹화된 부분 문자열을 튜플로 반환합니다.group(): re.Match 객체의 메서드로, 특정 일치 그룹을 반환합니다.2. 예제와 출력1. 단순 패턴 매칭import re# 예제 문자열string = "My phone number is 123-456-7890 and 987-654-3210."# 정규 ..

반응형