목록RE (4)
나의 개발일지
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/49993 🔑 정규식(re), startswith() skill에 주어진 스킬을 제외한 다른 스킬들을 없애기 위해 정규식을 사용 skill = "CBD" 일 때 "[^C^B^D]" 이렇게 만들어서 re.sub에 사용 re.sub( "[^C^B^D]", "", "BACDE")를 사용하면 "BCD"가 남음 정규식을 통해 얻은 문자열은 startswith() 함수에 사용 skill.startswith(s) 문자열 skill이 문자열 s로 시작하는지 확인 (Boolean 반환) "CBD".startswith("BCD") → "CBD"는 "BCD"로 시작하지 않기 때문에 False "CBD".start..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/64064 🔑 정규식, 순열 정규식 패턴 작성을 위해 banned_id의 문자 '*'을 '.'으로 변환 user_id에 대해 순열을 구함 (순열 : 서로 다른 n 개 중 r 개를 골라 순서를 고려해 나열한 경우의 수) 각각의 경우의 수에 대해 banned_id에 매칭되는 user_id를 찾음 한 리스트에 같은 요소들이 들었지만 순서가 다른 경우 때문에 정렬을 하고 있는지 없는지 검사를 함 import re from itertools import permutations def solution(user_id, banned_id): answer = 0 n = len(user_id) lst = [] ..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/17686 🔑 정규식 사용 re.search() 함수로 NUMBER 부분을 찾음 start() 함수로 NUMBER의 시작 인덱스를 얻음 end() 함수로 NUMBER의 끝 인덱스를 얻음 얻은 인덱스로 문자열 슬라이싱 해서 HEAD, NUMBER, TAIL을 구분 sort() 함수에 람다 표현식으로 HEAD로 우선 정렬, HEAD가 같다면 같은 애들 중 NUMBER로 정렬 lower()로 대소문자 구분 없앰, int로 문자열을 숫자를 정수형 숫자로 비교 HEAD, NUMBER, TAIL로 구분한 리스트를 하나의 문자열로 합쳐서 정답 리스트에 반환 import re def solution(file..
정규식 사용 방법들 # 정규식 모듈 import re # re.search()를 find() 처럼 쓰기 hand = open('mbox-short.txt') for line in hand: line = line.rstrip() if re.search('From: ', line): # 검색대상 line print(line) # From: 으로 시작하는 줄 찾기 ^ = 시작 hand = open('mbox-short.txt') for line in hand: line = line.rstrip() if re.search('^From: ', line): print(line) # 특수 지정 문자 # . = 어떤 문자가 와도 상관없다는 뜻 # * = 몇 번 와도 상관없다는 뜻 # ^X.*: = X 로 시작하고 어떤..