๋ฐ๋ ์ด์์ ๊ฐ๋ฐ ๋์ PERL ํธํ ์ ๊ทํํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ 10.45๊ฐ ์ถ์๋์์ต๋๋ค. PCRE2, C๋ก ์์ฑ๋๊ณ BSD ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค๋ ์๋ก์ด ๊ธฐ๋ฅ, ๋ฒ๊ทธ ์์ , ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ๋ฏธ๋ฏธํ ์ํฅ์ ๋ฏธ์น๋ ๋ช ๊ฐ์ง ๋ณ๊ฒฝ ์ฌํญ์ด ํฌํจ๋ ๋น๊ต์ ๋๊ท๋ชจ ๋ฆด๋ฆฌ์ค์ ๋๋ค.
๋ฒ์ 10.45๋ PCRE ๋ฐ PCRE2 ํ๋ก์ ํธ์ ์ ์์์ด์ ์ ์ง ๊ด๋ฆฌ์์ธ ํ๋ฆฝ ํค์ด์ฆ์๊ฒ ๊ฐ์ฌ๋ฅผ ํํ๋ ์๋ก์ด ํ๋ก์ ํธ ์ ์ง ๊ด๋ฆฌ์๊ฐ ์ค๋นํ ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค์ ๋๋ค.
๋ณ๊ฒฝ ์ฌํญ ๋ชฉ๋ก :
- JIT ์ปดํ์ผ ํ๋ก์ ํธ ์ฌ์ง ์ด์ Git ํ์ ๋ชจ๋๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- Unicode ๋ฐ์ดํฐ๋ฅผ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํ์ต๋๋ค. 16.
- ์ ๋์ฝ๋ Ll, Lt, Lu ์์ฑ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋ ๋งคํ์ด Perl๊ณผ ์ผ์นํ๋๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค. ์ด์ ์๋ /p{Ll}/i ํจํด์ ์๋ฌธ์์๋ง ์ผ์นํ์ต๋๋ค(๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋ ์ผ์น๊ฐ ์ง์ ๋ ๊ฒฝ์ฐ์๋). ์ด ๋ณ๊ฒฝ ์ฌํญ์ [:lower:]์ ๊ฐ์ POSIX ํด๋์ค์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋ ์ผ์น์๋ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
- ์๋ก์ด ๊ธฐ๋ฅ์ธ scan_substring์ ์ถ๊ฐํ์ต๋๋ค. ์ด๋ ์บก์ฒ๋ง ๋ธ๋ก์ ๋ด์ฉ์ ํ์ ํจํด๊ณผ ์ผ์น์ํค๋ ์๋ก์ด ์ ํ์ ์ด์ค์
์
๋๋ค.
์๋ฅผ ๋ค์ด, ํํ์ b(w++)(*scan_substring:(1).+rh)๋ ๋งจ ์ฒ์์ ์๋ ํฌ๊ทํ ์์ด ๋ฌธ์ ์ํ์ค "rh"๋ฅผ ํฌํจํ๋ ๋จ์ด๋ฅผ ์ฐพ์ต๋๋ค. - ํธํ๋๋ ๋ฌธ์ ํด๋์ค์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ ์์ค์์ค#18 (์ ๋์ฝ๋ ์ ๊ท ํํ์) ์๋ก์ด PCRE2_ALT_EXTENDED_CLASS ์ต์
์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฅผ ์ํด์๋ ๋ฌธ์ ํด๋์ค์์ ๋ฉํ๋ฌธ์๋ก [ ์ ์ฐ์ฐ์ &&, โ, ~~๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฌธ์ ํด๋์ค์ ๋บ์
๊ณผ ๊ต์งํฉ์ ์ฝ๊ฒ ์ํํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ํ๊ตญ์ด๋ ๊ทธ๋ฆฌ์ค์ด ๋ฌธ์(ํด๋น ์คํฌ๋ฆฝํธ์ ๋ฌธ์๋ ๋ค๋ฅธ ๋ฌธ์๋ ์ ์ธ)์ ์ผ์นํ๋ ค๋ฉด [p{L}&&[p{Thai}||p{Greek}]]๋ผ๋ ํํ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. - (?[โฆ]) ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ Perl ์คํ์ผ ํ์ฅ ๋ฌธ์ ํด๋์ค์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ฌธ์ ํด๋์ค์ ๋นผ๊ธฐ์ ๊ต์งํฉ์ ํํํ ์๋ ์์ง๋ง ๋ค๋ฅธ ๊ตฌ๋ฌธ์ ์ฌ์ฉํฉ๋๋ค. ์ ์์ค์์ค#18 (์ ๋์ฝ๋ ์ ๊ท ํํ์).
์๋ฅผ ๋ค์ด, ํ๊ตญ์ด ๋๋ ๊ทธ๋ฆฌ์ค์ด ๋ฌธ์(ํด๋น ์คํฌ๋ฆฝํธ์ ๋ฌธ์๋ ๋ค๋ฅธ ๋ฌธ์๋ ์ ์ธ)์ ์ผ์นํ๋ ค๋ฉด (?[p{L} & (p{Thai} + p{Greek})]) ํํ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. - ์บ๋ฆญํฐ ํด๋์ค ๋งค์นญ ๋ฉ์ปค๋์ฆ์ด ์๋นํ ๊ฐ์ ๋์์ต๋๋ค. ์ปดํ์ผ๋ ๋ฌธ์ ํด๋์ค๋ ์ด์ ๋์ฑ ์์ถ๋์์ผ๋ฉฐ, ์งํฉ์ ๋ํ ์ด์ง ๊ฒ์์ ์ฌ์ฉํ์ฌ ํฌ๊ฑฐ๋ ๋ณต์กํ ๋ฌธ์ ์งํฉ์ ๋ํ ์ผ์น๋ฅผ ๋ ๋น ๋ฅด๊ฒ ์ ๊ณตํฉ๋๋ค.
- ์ต์ ํ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ์๋ก์ด ๊ธฐ๋ฅ์ธ pcre2_set_optimize()๊ฐ API์ ์ถ๊ฐ๋์์ต๋๋ค.
- pcre2_substitute() ํจ์๊ฐ ๋ง์ด ๊ฐ์ ๋์์ต๋๋ค.
- ๊ธฐํ ๊ฐ์ ์ฌํญ ๋ฐ ๋ฒ๊ทธ ์์ .
์ถ์ฒ : linux.org.ru
