Python RegEx [์ ๊ท์]
- ๊ฒ์ ํจํด์ ํ์ฑํ๋ ์ผ๋ จ์ ๋ฌธ์
- ๋ฌธ์์ด์ ์ง์ ๋ ๊ฒ์ ํจํด์ด ํฌํจ๋์ด ์๋์ง๋ฅผ ํ์ธํ ์ ์์ต๋๋ค
- ๋ด์ฅํจํค์ง์ด๋ฉฐ ์๋์ ๊ฐ์ด ์ฌ์ฉํ๋ค
import re
#๋ฌธ์์ด์ ๊ฒ์ํ์ฌ The๋ก ์์ํ๊ณ Spain์ผ๋ก ๋๋๋์ง ํ์ธํฉ๋๋ค
txt = "The rain in Spain"
x = re.search("^The.*Spain$",txt)
if x:
print("Yes! match!")
else:
print("No match")
์ ๊ท์ ํจ์
1) findall : ๋ชจ๋ ์ผ์น ํญ๋ชฉ์ด ํฌํจ๋ ๋ชฉ๋ก์ ๋ฆฌํด
2) search : ๋ฌธ์์ด์์ ์ผ์นํ๋ ํญ๋ชฉ์ ๊ฒ์ํ๊ณ ์ผ์นํ๋ ํญ๋ชฉ์ด ์์ผ๋ฉด Match๊ฐ์ฒด๋ฅผ ๋ฆฌํด
3) split : ์ผ์นํ ๋ ๋ง๋ค ๋ฌธ์์ด์ด ๋ถํ ๋ ๋ชฉ๋ก์ ๋ฆฌํด
4) sub : ์ผ์นํ๋ ํญ๋ชฉ์ ์ ํํ ํ
์คํธ๋ก ๋ฐ๊ฟ๋๋ค
๋ฉํ๋ฌธ์
[] => ๋ฌธ์์ธํ
\ => ํน์์ํ์ค(ํน์๋ฌธ์๋ฅผ ์ด์ค์ผ์ดํํ๋๋ฐ ์ฌ์ฉํ๋ค)
. => ๋ชจ๋ ๋ฌธ์์ธ๋ฐ ๊ฐํ๋ฌธ์ ์ ์ธ
^ => start with
$ => end with ๋๋๋์ง
* => ๊ณฑํ๊ธฐ , 0๊ฐ ์ด์์ ๋ฐ์
+ => ํ๋ ์ด์์ ๋ฐ์
? => 0๊ฐ ์ด์์ ๋ฐ์
{} => ์ ํํ ์ง์ ๋ ๋ฐ์ํ์
| => ํ๋ ๋๋
() => ์บก์ฒ ๋ฐ ๊ทธ๋ฃนํ
ํน์์ํ์ค
\A : ์ง์ ๋ ๋ฌธ์๊ฐ ๋ฌธ์์ด์ ์์๋ถ๋ถ์ ์์ผ๋ฉด ์ผ์นํญ๋ชฉ์ ๋ฆฌํด
\b : ์ง์ ๋ ๋ฌธ์๊ฐ ๋ฌธ์์ด์ ์์ ๋๋ ๋์ ์๋ ์ผ์นํญ๋ชฉ์ ๋ฆฌํด r"\bain ๋ฌธ์์ด์ด ์์๋ฌธ์์ด๋ก ์ฒ๋ฆฌ๋๋์ง ํ์ธ
\B : ์ง์ ๋ ๋ฌธ์๊ฐ ์์ ๋๋ ๋์ด์๋ ์ผ์นํญ๋ชฉ์ ๋ฆฌํด
\d : ๋ฌธ์์ด์ ์ซ์(0-9)๊ฐ ํฌํจ๋ ์ผ์นํญ๋ชฉ์ ๋ฆฌํด
\D : ๋ฌธ์์ด์ ์ซ์๊ฐ ํฌํจ๋์ง ์๋ ์ผ์น ํญ๋ชฉ์ ๋ฆฌํดํฉ๋๋ค
\s : ๋ฌธ์์ด์ ๊ณต๋ฐฑ๋ฌธ์๊ฐ ํฌํจ๋ ์ผ์น ํญ๋ชฉ์ ๋ฆฌํด
\S : ๋ฌธ์์ด์ ๊ณต๋ฐฑ๋ฌธ์๊ฐ ํฌํจ๋์ง ์๋ ์ผ์น ํญ๋ชฉ์ ๋ฆฌํด
\w : ๋ฌธ์์ด์ ์์์ ๋จ์ด ๋ฌธ์ ((a-z), (0-9)๊น์ง์ ์ซ์ ๋ฐ ๋ฐ์ค)๊ณผ ํฌํจ๋ ์ผ์นํญ๋ชฉ์ ๋ฆฌํด
\W : ๋ฌธ์์ด์ ๋จ์ด๋ฌธ์๊ฐ ํฌํจ๋์ง ์์ ์ผ์น ํญ๋ชฉ์ ๋ฆฌํด
\Z : ์ง์ ๋ ๋ฌธ์๊ฐ ๋ฌธ์์ด ๋์ ์์ผ๋ฉด ์ผ์นํญ๋ชฉ์ ๋ฆฌํด
์ธํธ : ํน๋ณํ ์๋ฏธ๋ฅผ ๊ฐ๋ ํ ์์ ๋๊ดํธ์์ ์๋ ๋ฌธ์ ์ธํธ
[arn] : ์ง์ ๋ ๋ฌธ์ (a,r,n) ์ค ํ๋๊ฐ ์กด์ฌํ๋ ์ผ์นํญ๋ชฉ์ ๋ฆฌํด
[a-n] : a์ n์ฌ์ด์ ์ํ๋ฒณ ์์ผ๋ก ๋ชจ๋ ์๋ฌธ์์ ์ผ์นํญ๋ชฉ์ ๋ฆฌํด
[^arn] : (a,r,n) ์ ์ธํ ๋ชจ๋ ๋ชฌ์์ ๋ํ ์ผ์นํญ๋ชฉ์ ๋ฆฌํด
[0123] : ์ง์ ๋ ์ซ์ (0,1,2,3) ์ค ํ๋๋ผ๋ ์กด์ฌํ๋ ์ผ์นํญ๋ชฉ์ ๋ฆฌํด
[0-9] : 0์์ 9์ฌ์ด์ ๋ชจ๋ ์ซ์์ ๋ํด ์ผ์นํ๋ ํญ๋ชฉ์ ๋ฆฌํด
[0-5][0-9] : 00๊ณผ 59 ์ค ๋์๋ฆฌ ์ซ์์ ๋ํ ์ผ์นํญ๋ชฉ์ ๋ฆฌํด
[a-z][A-z] : a์ z ์ฌ์ด ์๋ฌธ์ ๋๋ ๋๋ฌธ์ ์ฌ์ด์ ์ํ๋ฒณ์ ๋ฌธ์์ ๋ํ ์ผ์นํญ๋ชฉ์ ๋ฆฌํดํ๋ค
[+] : ์งํฉ์์ +, *, . , |, (), $, {} ํน๋ณํ ์๋ฏธ๊ฐ ์์ผ๋ฏ๋ก ๋ค์์ ์๋ฏธํ๋ค
.span()์ผ์น์ ์์์์น์ ๋์์น๋ฅผ ํฌํจํ๋ ํํ์ ๋ฆฌํด,
.string() ํจ์์ ์ ๋ฌ๋ ๋ฌธ์์ด์ ๋ฆฌํด
.group() ์ผ์นํ๋ ๋ฌธ์์ด์ ์ผ๋ถ๋ฅผ ๋ฆฌํด
# span
i = re.search(r"\bX\w", txt)
print(i.span()) #12, 17
#String ์ ๋ฌ๋ ๋ฌธ์์ด
o = re.search(r"\bX\w", txt)
print(o. string())
# group ๋๋ฌธ์ s๋ก ์์ํ๋ ๋จ์ด
p = re.search(r"\bX\w", txt)
print(p. group()) #spain
'Python > Python Language' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Numpy ๋ฐฐ์ด(Array)์ ๋ํ ๊ฐ๋ ์ค๋ช (0) | 2024.04.24 |
---|---|
๋๋ค(Lambda) : ์ต๋ช ํจ์ ๊ฐ๋ ์ค๋ช (0) | 2024.04.24 |
ํ์ด์ฌ Datetime ํฌ๋งท ๊ฐ์ด๋: strftime ์ฝ๋ ์์์ ์ค๋ช (2) | 2024.04.24 |
SciPy(Scientific Python) Numpy๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๊ณผํ ๊ณ์ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (0) | 2024.04.16 |
๋ฐ์ดํฐํ๋ ์(DataFrame)์ ๋ฐฐ์ด ์กฐ์ธ(join)๊ณผ ๋ฐฐ์ด๋ถํ (split) (0) | 2024.04.09 |