-
Regular ExpressionPython 2020. 9. 11. 19:40
문법 설명 예시 . 임의의 한 문자가 존재 .{3} : 문자가 3개 존재 ? 바로 앞의 문자가 존재하거나 존재하지 않음 \d? : 숫자가 하나 있거나 없어야 함 * 바로 앞의 문자가 존재하지 않거나 무한대로 존재 \d* : 숫자가 없거나 하나 이상 + 바로 앞의 문자가 한번 이상 존재 \d+ : 숫자가 하나 이상 ^ 바로 뒤의 문자로 문자열이 시작해야됨 ^abc : abc로 시작해야됨 $ 바로 앞의 문자로 문자열이 끝나야됨 xyz$ : xyz 로 끝나야됨 {숫자} 숫자만큼 반복 \d{3} : 숫자가 3개 있어야됨 {숫자,} 숫자 이상만큼 반복 {숫자1, 숫자2} 숫자1 이상, 숫자2 이하 만큼 반복 \d{3,5} : 숫자가 3|4|5 개 여야됨 (문자열) 문자나 문자열을 묶음 grouping에 사용, e.g. group(1) [문자1, 문자2] 대괄호 안에 있는 문자들이 존재하는지 검색 [Pp]ython : 'Python' or 'python' [^] ^기호 바로 뒤의 문자가 존재하지 않음 [^aeiou] : 소문자모음이 아닌 문자열 [:alpha:] 알파벳만 검색 [:alnum:] 알파벳, 숫자만 검색 [:digit:] 숫자만 검색 [:upper:] 대문자만 검색 \\ \ (역슬래쉬) 자체를 검색 \d 모든 숫자를 검색, [0-9]와 동일 \D 숫자를 제외한 모든 문자를 검색 \s 공백을 검색 \S 공백이 아닌 문자를 검색 \w 숫자 또는 문자를 검색 \W 숫자 또는 문자가 아닌것을 검색 | OR [A-Z] 모든 대문자알파벳을 검색 aaa|bbb : aaa 또는 bbb [1-10] 1-10 까지 숫자들을 검색 Examples
1. | (OR)
batRegex = re.compile(r'Bat(man|mobile|copter|bat)') mo = batregex.search('Batmobile lost a wheel') mo.group(0) # 'Batmobile' mo.group(1) # 'mobile'
2. Optional Matching with the Question Mark
batRegex = re.compile(r'Bat(wo)?man') # Search Batman or Batwoman only
3. Matching Zero or More with the Star
batRegex = re.compile(r'Bat(wo)*man') # Search Batman, Batwoman, Batwowoman, ...
4. Matching One or More with the Plus
batRegex = re.compile(r'Bat(wo)+man') # Search Batwoman, Batwowoman, ...
5. Matching Specific Repetitions with Curly Brackets
haRegex = re.compile(r'(Ha){2,}') # Search HaHa, HaHaHa, ...
6. Greedy and Nongreedy Matching
- greedy matching
greedyHaRegex = re.compile(r'(Ha){3,5}') greedyHaRegex.search('HaHaHaHaHa').group(0) # 'HaHaHaHaHa'
- non-greedy matching
[NOTE] 패턴 앞에 r 을 붙이는것은 regular expression 이라는것을 명시해주는것이다. r'[pattern]'
'Python' 카테고리의 다른 글
matplotlib 한글 폰트 적용 (0) 2020.09.11 jupyter notebook에 가상환경 kernel 추가하기 (0) 2020.09.11 Github tutorial (0) 2020.09.10