728x90
λ°μν
β» SK μ΄λμ€ λ£¨ν€μ¦ 24κΈ° (ν΄λΌμ°λκΈ°λ° μ€λ§νΈ μ΅ν©λ³΄μ κ³Όμ ) κ΅μ‘μ λ€μΌλ©΄μ μμ±ν λ΄μ©μ λλ€.
1οΈβ£ μ κ· ννμμ κΈ°λ³Έ κ°λ
πΉμ κ· ννμκ³Ό μΆμ½ ννμ
- μ κ· ννμ: νΉμ ν¨ν΄μ λ¬Έμμ΄μ μ°Ύκ±°λ λ³νν μ μλ λ¬Έλ²
- μΆμ½ ννμ: μ κ·ννμμ κ°κ²°νκ² ννν νν
μ κ· ννμ | μλ―Έ | μΆμ½ ννμ |
[0-9] | μ«μλ₯Ό μ°Ύμ | \d |
[^0-9] | μ«μκ° μλ κ²μ μ°Ύμ | \D |
[\t\n\r\f\v] | λ¬Έμ(ν μ€νΈ, νΉμλ¬Έμ, μ«μ)λ₯Ό μ°Ύμ | \s |
[^\t\n\r\f\v] | λ¬Έμκ° μλ κ²μ μ°Ύμ | \S |
[a-z] | μλ¬Έμλ₯Ό μ°Ύμ | |
[^a-z] | μλ¬Έμκ° μλ κ²μ μ°Ύμ | |
[A-Z] | λλ¬Έμλ₯Ό μ°Ύμ | |
[^A-Z] | λλ¬Έμκ° μλ κ²μ μ°Ύμ | |
[A-Za-z0-9] | μλ¬Έμ, μ«μλ₯Ό μ°Ύμ | \w |
[^A-Za-z0-9] | μλ¬Έμ, μ«μκ° μλ κ²μ μ°Ύμ | \W |
ν μΆμ² (https://wikidocs.net/179531)
πΉλ©ν λ¬Έμ
- μ κ· ννμ: νΉμ ν¨ν΄μ λ¬Έμμ΄μ μ°Ύκ±°λ λ³νν μ μλ λ¬Έλ²
ν¨ν΄ | μ€λͺ | μμ |
^ | μ΄ ν¨ν΄μΌλ‘ μμν΄μΌ ν¨ | ^abc : abcλ‘ μμν΄μΌ ν¨ (abcd, abc12 λ±) |
$ | μ΄ ν¨ν΄μΌλ‘ μ’ λ£λμ΄μΌ ν¨ | xyz$ : xyzλ‘ μ’ λ£λμ΄μΌ ν¨ (123xyz, strxyz λ±) |
[λ¬Έμλ€] | λ¬Έμλ€ μ€μ νλμ΄μ΄μΌ ν¨. κ°λ₯ν λ¬Έμλ€μ μ§ν©μ μ μν¨. | [Pp]ython : "Python" νΉμ "python" |
[^λ¬Έμλ€] | [λ¬Έμλ€]μ λ°λλ‘ νΌν΄μΌν λ¬Έμλ€μ μ§ν©μ μ μν¨. | [^aeiou] : μλ¬Έμ λͺ¨μμ΄ μλ λ¬Έμλ€ |
| | λ ν¨ν΄ μ€ νλμ΄μ΄μΌ ν¨ (OR κΈ°λ₯) | a | b : a λλ b μ΄μ΄μΌ ν¨ |
? | μ ν¨ν΄μ΄ μκ±°λ νλμ΄μ΄μΌ ν¨ (Optional ν¨ν΄μ μ μν λ μ¬μ©) |
\d? : μ«μκ° νλ μκ±°λ μμ΄μΌ ν¨ |
+ | μ ν¨ν΄μ΄ νλ μ΄μμ΄μ΄μΌ ν¨ | \d+ : μ«μκ° νλ μ΄μμ΄μ΄μΌ ν¨ |
* | μ ν¨ν΄μ΄ 0κ° μ΄μμ΄μ΄μΌ ν¨ | \d* : μ«μκ° μκ±°λ νλ μ΄μμ΄μ΄μΌ ν¨ |
ν¨ν΄{n} | μ ν¨ν΄μ΄ nλ² λ°λ³΅ν΄μ λνλλ κ²½μ° | \d{3} : μ«μκ° 3κ° μμ΄μΌ ν¨ |
ν¨ν΄{n,m} | μ ν¨ν΄μ΄ μ΅μ nλ², μ΅λ m λ² λ°λ³΅ν΄μ λνλλ κ²½μ° (n λλ m μ μλ΅ κ°λ₯) |
\d{3,5} : μ«μκ° 3κ°, 4κ° νΉμ 5κ° μμ΄μΌ ν¨ |
\d | μ«μ 0 ~ 9 | \d\d\d : 0 ~ 9 λ²μμ μ«μκ° 3κ°λ₯Ό μλ―Έ (123, 000 λ±) |
\w | λ¬Έμλ₯Ό μλ―Έ | \w\w\w : λ¬Έμκ° 3κ°λ₯Ό μλ―Έ (xyz, ABC λ±) |
\s | νμ΄νΈ μ€νμ΄μ€λ₯Ό μλ―Ένλλ°, [\t\n\r\f] μ λμΌ | \s\s : νμ΄νΈ μ€νμ΄μ€ λ¬Έμ 2κ° μλ―Έ (\r\n, \t\t λ±) |
. | λ΄λΌμΈ(\n) μ μ μΈν λͺ¨λ λ¬Έμλ₯Ό μλ―Έ | .{3} : λ¬Έμ 3κ° (F15, 0x0 λ±) |
ν μΆμ² (https://wikidocs.net/179531)
2οΈβ£ re λͺ¨λμ μ£Όμ ν¨μ
πΉ1. re λͺ¨λ
- νμ΄μ¬μμ μ κ· ννμμ μ¬μ©νκΈ° μν΄μλ ``re`` λͺ¨λμ μν¬νΈ ν΄μΌν¨
import re
πΉ2. κΈ°λ³Έ ν¨ν΄ λ§€μΉ
- μ κ· ννμμ μ¬μ©νμ¬ ν μ€νΈμμ νΉμ ν¨ν΄μ μ°Ύλ λ°©λ²
- ``re.compile`` ν¨μλ₯Ό μ¬μ©νμ¬ μ κ·ννμμ μ»΄νμΌ
import re
#raw string
text = "μ€λμ 2025λ
1μ 15μΌμ
λλ€."
pattern = re.compile(r"\d+")
matches = pattern.findall(text)
print(matches) # ['2025', '1', '15']
- ``r"\d+"``:
- μ κ· ννμμμ ``\d``λ μ«μλ₯Ό μλ―Ένλ©°, ``+``λ ν κ° μ΄μμ μ°μλ μ«μλ₯Ό μ°Ύλλ€λ λ»
- ``r``μ Raw Stringμ μλ―Ένλ©°, μ΄μ€μΌμ΄ν λ¬Έμλ₯Ό ν΄μνμ§ μκ³ κ·Έλλ‘ μ λ¬ν¨
- μ¦, ``\\``λ₯Ό νλμ ``\``λ‘ μ²λ¦¬νμ§ μμλ λ¨
- ``pattern.findall(text)``:
- μ£Όμ΄μ§ ``text``μμ μ κ· ννμκ³Ό μΌμΉνλ λͺ¨λ λΆλΆμ 리μ€νΈλ‘ λ°ν
#μΌλ°λ¬Έμμ΄
pattern = re.compile("\\d+") # μ«μλ₯Ό μ°Ύλ μ κ· ννμ
text = "There are 123 apples"
matches = pattern.findall(text)
print(matches) # ['123']
- ``"\\d+"``:
- μΌλ° λ¬Έμμ΄μμλ ``\``λ₯Ό μ΄μ€μΌμ΄ν λ¬Έμλ‘ μ¬μ©νκΈ° λλ¬Έμ, μ€μ λ‘ μ κ· ννμμ ``\d``λ₯Ό λνλ΄λ €λ©΄ ``\\d``μ²λΌ λ λ² μμ±ν΄μΌ ν¨
- κ²°κ³Όμ μΌλ‘λ `\\d+``λ Raw Stringμμμ ``\d+``μ λμΌν μλ―Έ
πΉ3. re.search() ν¨μ
- ``re.search() ν¨μλ ν΄λΉ λ¬Έμμ΄μμ μ κ· ννμμ μ°Ύμμ νλμ κ²°κ³Όλ₯Ό λ°νν¨
- λ§€μΉ μ, ``Match`` κ°μ²΄λ₯Ό λ°ννκ³ λ§€μΉκ° μμ κ²½μ° ``None``μ λ°νν¨
text = "Contact us at support@example.com"
match = re.search(r"[\w.-]+@[\w.-]+", text)
if match:
print(match.group()) # 'support@example.com'
πΉ4. .group() λ©μλ
- ``.group()`` λ©μλλ λ§€μΉλ κ²°κ³Ό μ€ νΉμ κ·Έλ£Ήλ§ μΆλ ₯ν λ μ¬μ©λ¨
match = re.search(r"(\d{4})-(\d{2})-(\d{2})", "Date: 2025-01-19")
if match:
print(match.group(1)) # '2025'
print(match.group(2)) # '01'
print(match.group(3)) # '19'
3οΈβ£ μ κ·ννμμ νμ©: λ μ§ μΆμΆκ³Ό λ°μ΄ν° νν°λ§
πΉ1. λ μ§ μΆμΆ (μ: datetimeκ³Ό ν¨κ» μ¬μ©)
- μ κ·ννμμ νμ©ν΄ λ μ§ λ°μ΄ν°λ₯Ό μΆμΆνκ³ , μ΄λ₯Ό ``datetime``μΌλ‘ λ³νν΄ νμ©ν μ μμ
from datetime import datetime
text = "Today is 2025-01-15."
match = re.search(r"(\d{4})-(\d{2})-(\d{2})", text)
if match:
date = datetime.strptime(match.group(0), "%Y-%m-%d")
print(date) # 2025-01-19 00:00:00
print("Year:", match.group(1)) # '2025'
print("Year:", match.group(2)) # '01'
print("Year:", match.group(3)) # '15'
else:
print("No date found in the text.")
πΉ2. μ€λ³΅ μ κ±° (set() κ³Ό ν¨κ» μ¬μ©)
- μ κ· ννμμ νμ©ν΄ ν μ€νΈμμ μ€λ³΅λ ν¨ν΄μ μ κ±°νλΌλ©΄ , ``set()`` ν¨μλ₯Ό μ¬μ©νλ©΄ κ°νΈν¨
text = "apple, banana, apple, orange, banana"
matches = re.findall(r"\w+", text)
unique_items = set(matches)
print(unique_items) # {'apple', 'banana', 'orange'}
728x90
λ°μν
'π§© Language > Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Python] μΉ μ€ν¬λν κΈ°μ΄ (BeautifulSoup4, CSS Selectors) (0) | 2025.01.16 |
---|---|
[Python] νμ΄μ¬μ νμ©ν μ΄λ©μΌ μλν λ°©λ² (1) | 2025.01.16 |
[Python] νμΌ λ° λλ ν°λ¦¬ μ μ΄ (1) | 2025.01.14 |
[Python] μ£Όμ λ°μ΄ν° ꡬ쑰 (리μ€νΈ / λμ λ리) (0) | 2025.01.14 |
[Python] κΈ°λ³Έ μ μΆλ ₯ λ€λ£¨κΈ° (0) | 2025.01.13 |