๊ฐ์
์ง๊ธ๊น์ง๋ ๊ฐ๋จํ ์ ๊ท์์ ์ดํด ๋ณด์์ง๋ง, ์ค์ ๋ก ์กด์ฌํ๋ ๋ค์ํ ๋ฌธ์์ด์์ ์ ๋ณด๋ฅผ ๋ฝ์๋ด๊ธฐ ์ํด์๋ ์ถ๊ฐ์ ์ธ ์ต์
์ด ํ์ํ๋ค. ์๋ฅผ ๋ค์ด ์ผํ๋ชฐ์ ์ํ ๋ฆฌ๋ทฐ๋ฅผ ์ฌ์ฉ์๊ฐ ์์ฑํ๋ค๊ณ ํ๋ค. ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ํต์ฌ์ ์ธ ๋จ์ด๋ฅผ ๋ฝ์๋ด์ผ ํ๋ค. ํ์ง๋ง ์ด๋ฐ ๋ฆฌ๋ทฐ๋ ๋ฌธ์์ด์ ๋ง์ง๋ง, ์ ์ฒด์ ์ผ๋ก ๋ณด์์ ๋ ์ค๋ฐ๊ฟ ๋ฌธ์(\n
)๊ฐ ํฌํจ๋์ด ์๋ค. ์ค๋ฐ๊ฟ ๋ฌธ์(\n
)๋ ์ด์ ์ ๋ฐฐ์ด ๋ฌธ์์ด์์ ๋งค์น๋์ง ์๋ ๊ฒฝ์ฐ์ด๋ค. ์ด๋ ๊ฒ ์ด๋ค ๋ฌธ์์ด์ด๋์ ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ๊ฒ์ ์กฐ๊ฑด์ ๋ฌ๋ฆฌํด์ผ ํ๋ค. ์ด๋ฐ ๋ฌธ์ ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์ ๊ท์์ ์ปดํ์ผํ ๋ ์ฌ์ฉํ ์ ์๋ ์ต์
์ ์๊ฐํ๋ค.
option | describtion |
---|---|
DOTALL(S) | ๋ฉํ๋ฌธ์ . ๊ฐ ์ค๋ฐ๊ฟ ๋ฌธ์๋ฅผ ํฌํจํ์ฌ ๋ชจ๋ ๋ฌธ์์ ๋งค์นํ ์ ์๋๋ก ํ๋ค. |
IGNORECASE(I) | ๋์๋ฌธ์์ ๊ด๊ณ์์ด ๋งค์นํ ์ ์๋๋ก ํ๋ค. |
MULTILINE(M) | ์ฌ๋ฌ์ค๊ณผ ๋งค์นํ ์ ์๋๋ก ํ๋ค. (^, $ ๋ฉํ๋ฌธ์์ ์ฌ์ฉ๊ณผ ๊ด๊ณ๊ฐ ์๋ ์ต์ ์ด๋ค) |
VERBOSE(X) | verbose ๋ชจ๋๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค. (์ ๊ท์์ ๋ณด๊ธฐ ํธํ๊ฒ ๋ง๋ค์ ์๊ณ ์ฃผ์๋ฑ์ ์ฌ์ฉํ ์ ์๊ฒ๋๋ค.) |
์ต์
์ ์ฌ์ฉํ ๋๋ re.DOTALL
์ฒ๋ผ ์ ์ฒด ์ต์
์ด๋ฆ์ ์จ๋ ๋๊ณ re.S
์ฒ๋ผ ์ฝ์ด๋ฅผ ์จ๋ ๋๋ค.
DOTALL(S)
๋ฉํ๋ฌธ์
.
๊ฐ ์ค๋ฐ๊ฟ ๋ฌธ์๋ฅผ ํฌํจํ์ฌ ๋ชจ๋ ๋ฌธ์์ ๋งค์นํ ์ ์๋๋ก ํ๋ค.
.
๋ฉํ ๋ฌธ์๋ ์ค๋ฐ๊ฟ ๋ฌธ์(\n
)๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฌธ์์ ๋งค์น๋๋ ๊ท์น์ด ์๋ค. ๋ง์ฝ \n
๋ฌธ์๋ ํฌํจํ์ฌ ๋งค์นํ๊ณ ์ถ๋ค๋ฉด re.DOTALL
๋๋ re.S
์ต์
์ ์ฌ์ฉํด ์ ๊ท์์ ์ปดํ์ผํ๋ฉด ๋๋ค.
์์ ์๋ฅผ ๋ณด๋ฉด, ์ปดํ์ผ ์ต์
์ ์ฃผ์ง ์์ ๊ฒฝ์ฐ ๋ฉํ๋ฌธ์ .
๋ ์ค๋ฐ๊ฟ ๋ฌธ์(\n
)์ ๋งค์น๋์ง ์์์ ์ ์ ์๋ค.
์ด๋ฒ์๋ ์ต์
์ ์ค ๊ฒฝ์ฐ์ด๋ค. ์ค๋ฐ๊ฟ ๋ฌธ์๋ ํฌํจํ์ฌ ๊ฒฐ๊ณผ์ ๋ฐ์ํ ๊ฒ์ ์ ์ ์๋ค. ๋ณดํต re.DOTALL
์ต์
์ ์ฌ๋ฌ ์ค๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์์ \n
์ ์๊ด์์ด ๊ฒ์ํ ๋ ๋ง์ด ์ฌ์ฉํ๋ค.
IGNORECASE, I
๋์๋ฌธ์์ ๊ด๊ณ์์ด ๋งค์นํ ์ ์๋๋ก ํ๋ค.
re.IGNORECASE
๋๋ re.I
์ต์
์ ๋์๋ฌธ์ ๊ตฌ๋ณ ์์ด ๋งค์น๋ฅผ ์ํํ ๋ ์ฌ์ฉํ๋ ์ต์
์ด๋ค. ๋ค์ ์์ ๋ฅผ ๋ณด์.
[a-z]
์ ๊ท์์ ์๋ฌธ์๋ง์ ์๋ฏธํ์ง๋ง re.I
์ต์
์ผ๋ก ๋์๋ฌธ์ ๊ตฌ๋ณ ์์ด ๋งค์น๋๋ค.
MULTILINE, M
์ฌ๋ฌ์ค๊ณผ ๋งค์นํ ์ ์๋๋ก ํ๋ค.
re.MULTILINE ๋๋ re.M ์ต์
์ ๋ค์ ๊ธ์ ์ค๋ช
ํ ๋ฉํ ๋ฌธ์์ธ ^
, $
์ ์ฐ๊ด๋ ์ต์
์ด๋ค. ์ด ๋ฉํ ๋ฌธ์์ ๋ํด ๊ฐ๋จํ ์ค๋ช
ํ์๋ฉด ^
๋ ๋ฌธ์์ด์ ์ฒ์์ ์๋ฏธํ๊ณ , $
๋ ๋ฌธ์์ด์ ๋ง์ง๋ง์ ์๋ฏธํ๋ค. ์๋ฅผ ๋ค์ด ์ ๊ท์์ด ^python
์ธ ๊ฒฝ์ฐ ๋ฌธ์์ด์ ์ฒ์์ ํญ์ python์ผ๋ก ์์ํด์ผ ๋งค์น๋๊ณ , ๋ง์ฝ ์ ๊ท์์ด python$
์ด๋ผ๋ฉด ๋ฌธ์์ด์ ๋ง์ง๋ง์ ํญ์ python์ผ๋ก ๋๋์ผ ๋งค์น๋๋ค๋ ์๋ฏธ์ด๋ค.
['python one']
์ ๊ท์ ^python\s\w+
์ python์ด๋ผ๋ ๋ฌธ์์ด๋ก ์์ํ๊ณ ๊ทธ ๋ค์ whitespace, ๊ทธ ๋ค์ ๋จ์ด๊ฐ ์์ผ ํ๋ค๋ ์๋ฏธ์ด๋ค. ๊ฒ์ํ ๋ฌธ์์ด data๋ ์ฌ๋ฌ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ^
๋ฉํ ๋ฌธ์์ ์ํด python์ด๋ผ๋ ๋ฌธ์์ด์ ์ฌ์ฉํ ์ฒซ ๋ฒ์งธ ์ค๋ง ๋งค์น๋ ๊ฒ์ ์ ์ ์๋ค. ํ์ง๋ง ๋ด๊ฐ ์ํ๋ ๊ฒฐ๊ณผ๋ ํด๋น ๋ฌธ์์ด์ ์ฒ์์ ์กฐ๊ฑด์ด ๊ฑธ๋ฆฌ๋ ๊ฒ์ด ์๋๊ณ , ๋ผ์ธ์ด ๋ณ๊ฒฝ๋ ๋ ์ฒ์์ธ ๊ฒฝ์ฐ๋ฅผ ๋ปํ๋ ๊ฒ์ด๋ค. ์ด๋ด ๋ ์ฌ์ฉํ๋ ์ต์
์ด re.MULTILINE
๋๋ re.M
์ด๋ค.
['python one', 'python two', 'python three']
re.MULTILINE
์ต์
์ผ๋ก ์ธํด ^
๋ฉํ ๋ฌธ์๊ฐ ๋ฌธ์์ด ์ ์ฒด๊ฐ ์๋ ๊ฐ ์ค์ ์ฒ์์ด๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ๊ฒ ๋์๋ค. ์ฆ, re.MULTILINE ์ต์
์ ^, $ ๋ฉํ ๋ฌธ์๋ฅผ ๋ฌธ์์ด์ ๊ฐ ์ค๋ง๋ค ์ ์ฉํด ์ฃผ๋ ๊ฒ์ด๋ค.
VERBOSE(X)
verbose ๋ชจ๋๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค.
๊ณ ๋ง์ด ์ต์
์ด๋ค. ์ฌ์ค ์ ๊ท์์ ์ฌ์ฉํ๊ธฐ ๊น๋ค๋กญ๋ค. ์ ๊ท์์ ๋ง์น ์์ ๊ฐ์ด ํจ์ถ์ ์ธ ๋จ์ด๋ค์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ๋ฐ๋ผ์ ์ ๋ฌธ๊ฐ๋ค์ด ๋ง๋ค์ด ๋์ ์ ๊ท์์ ๋ณด๋ฉด ์ ๋ง ์ฌ์ธํ๊ฒ ๋ค๋ค์ ํด์ํด์ผ ํ๋ค. ์ข ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์๊น? ์ด๋ ๊ฒ ์ดํดํ๊ธฐ ์ด๋ ค์ด ์ ๊ท์์ ์ฃผ์ ๋๋ ์ค ๋จ์๋ก ๊ตฌ๋ถํ ์ ์๋ค๋ฉด ์ผ๋ง๋ ๋ณด๊ธฐ ์ข๊ณ ์ดํดํ๊ธฐ ์ฌ์ธ๊น? ์ด๋ฌํ ์๊ตฌ๋ฅผ ํด์ํด์ค ์ ์๋ ๊ฒ์ด ๋ฐ๋ก re.VERBOSE
๋๋ re.X
์ต์
์ด๋ค.
์ฒซ ๋ฒ์งธ์ ๋ ๋ฒ์งธ ์๋ฅผ ๋น๊ตํด ๋ณด๋ฉด ์ปดํ์ผ๋ ํจํด ๊ฐ์ฒด์ธ charref๋ ๋ชจ๋ ๋์ผํ ์ญํ ์ ํ๋ค. ํ์ง๋ง ์ ๊ท์์ด ๋ณต์กํ ๊ฒฝ์ฐ ๋ ๋ฒ์งธ์ฒ๋ผ ์ฃผ์์ ์ ๊ณ ์ฌ๋ฌ ์ค๋ก ํํํ๋ ๊ฒ์ด ํจ์ฌ ๊ฐ๋ ์ฑ์ด ์ข๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
re.VERBOSE
์ต์
์ ์ฌ์ฉํ๋ฉด ๋ฌธ์์ด์ ์ฌ์ฉ๋ whitespace๋ ์ปดํ์ผํ ๋ ์ ๊ฑฐ๋๋ค(๋จ [ ] ์์ ์ฌ์ฉํ whitespace๋ ์ ์ธ). ๊ทธ๋ฆฌ๊ณ ์ค ๋จ์๋ก๊ธฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ์๋ฌธ์ ์์ฑํ ์ ์๋ค.