regex(7) - wariua/manpages-ko GitHub Wiki

NAME

regex - POSIX.2 μ •κ·œ ν‘œν˜„μ‹

DESCRIPTION

POSIX.2에 κ·œμ •λΌ μžˆλŠ” μ •κ·œ ν‘œν˜„μ‹(regular expression, "RE")μ—λŠ” 두 κ°€μ§€ ν˜•νƒœκ°€ μžˆλ‹€. 신식 RE(λŒ€λž΅ egrep의 RE. POSIX.2μ—μ„œλŠ” "ν™•μž₯" RE라고 함)와 ꡬ식 RE(λŒ€λž΅ ed(1)의 RE. POSIX.2μ—μ„œλŠ” "κΈ°λ³Έ" RE라고 함)이닀. ꡬ식 REλŠ” 주둜 λͺ‡λͺ‡ 였래된 ν”„λ‘œκ·Έλž¨μ— ν•˜μœ„ ν˜Έν™˜μ„±μ„ μœ„ν•΄ 남아 μžˆλŠ”λ° λ§ˆμ§€λ§‰μ—μ„œ λ…Όμ˜ν•œλ‹€. POSIX.2μ—μ„œλŠ” RE 문법과 의미둠 일뢀λ₯Ό λ―Έμ •μœΌλ‘œ 남겨두고 μžˆλ‹€. "(!)"λŠ” 그런 뢀뢄듀을 μ–΄λ–»κ²Œ κ΅¬ν˜„ν•˜κΈ°λ‘œ ν–ˆλŠ”μ§€ λ‚˜νƒ€λ‚΄λ©° λ‹€λ₯Έ POSIX.2 κ΅¬ν˜„κ³Ό μ™„μ „νžˆ ν˜Έν™˜λ˜μ§€λŠ” μ•Šμ„ μˆ˜λ„ μžˆλ‹€.

(신식) RE 식은 '|'둜 κ΅¬λΆ„λœ 1개(!) μ΄μƒμ˜ λΉ„μ–΄ μžˆμ§€ μ•Šμ€(!) λΈŒλžœμΉ˜λ‹€. κ·Έ 쀑 μ–΄λŠ λΈŒλžœμΉ˜μ—λΌλ„ μΌμΉ˜ν•˜λ©΄ 식에 μΌμΉ˜ν•˜λŠ” 것이닀.

브랜치(branch)λž€ 1개(!) μ΄μƒμ˜ 쑰각을 이어 뢙인 것이닀. 첫 번째 쑰각과 μΌμΉ˜ν•˜κ³  μ΄μ–΄μ„œ μ°¨λ‘€λ‘œ μΌμΉ˜ν•˜λ©΄ λΈŒλžœμΉ˜μ— μΌμΉ˜ν•˜λŠ” 것이닀.

쑰각(piece)μ΄λž€ μ›μžλ§Œ μžˆκ±°λ‚˜ κ·Έ 뒀에 '*'λ‚˜ '+', '?', ν•œκ³„κ°€ 1개(!) 뢙은 것이닀. μ›μž 뒀에 '*'κ°€ 있으면 κ·Έ μ›μžμ™€ 0번 이상 μΌμΉ˜ν•˜λŠ” 열에 μΌμΉ˜ν•œλ‹€. μ›μž 뒀에 '+'κ°€ 있으면 κ·Έ μ›μžμ™€ 1번 이상 μΌμΉ˜ν•˜λŠ” 열에 μΌμΉ˜ν•œλ‹€. μ›μž 뒀에 '?'κ°€ 있으면 κ·Έ μ›μžμ™€ 0번 λ˜λŠ” 1번 μΌμΉ˜ν•˜λŠ” 열에 μΌμΉ˜ν•œλ‹€.

ν•œκ³„(bound)λž€ '{'에 μ΄μ–΄μ„œ λΆ€ν˜Έ μ—†λŠ” 10μ§„μˆ˜ μ •μˆ˜κ°€ 였고, μ„ νƒμ μœΌλ‘œ ','κ°€ 였고, μ„ νƒμ μœΌλ‘œ 또 λ‹€λ₯Έ λΆ€ν˜Έ μ—†λŠ” 10μ§„μˆ˜ μ •μˆ˜κ°€ 였고, 항상 λ§ˆμ§€λ§‰μ— '}'κ°€ 뢙은 것이닀. μ •μˆ˜λŠ” 0μ—μ„œ RE_DUP_MAX(255(!))κΉŒμ§€ 내에 μžˆμ–΄μ•Ό ν•˜λ©° 두 개일 λ•ŒλŠ” 첫 λ²ˆμ§Έκ°€ 두 λ²ˆμ§Έλ³΄λ‹€ 크지 μ•Šμ•„μ•Ό ν•œλ‹€. μ›μž 뒀에 μ •μˆ˜ iκ°€ 있고 μ‰Όν‘œλŠ” μ—†λŠ” ν•œκ³„κ°€ 있으면 μ›μžμ™€ μ •ν™•νžˆ i 번 μΌμΉ˜ν•˜λŠ” 열에 μΌμΉ˜ν•œλ‹€. μ›μž 뒀에 μ •μˆ˜ i와 μ‰Όν‘œκ°€ μžˆλŠ” ν•œκ³„κ°€ 있으면 μ›μžμ™€ i 번 이상 μΌμΉ˜ν•˜λŠ” 열에 μΌμΉ˜ν•œλ‹€. μ›μž 뒀에 μ •μˆ˜ i와 jκ°€ μžˆλŠ” ν•œκ³„κ°€ 있으면 μ›μžμ™€ i λ²ˆμ—μ„œ j λ²ˆκΉŒμ§€ μ‚¬μ΄λ‘œ μΌμΉ˜ν•˜λŠ” 열에 μΌμΉ˜ν•œλ‹€.

μ›μž(atom)λž€ "()"둜 감싼 μ •κ·œ ν‘œν˜„μ‹μ΄κ±°λ‚˜ (κ·Έ μ •κ·œ ν‘œν˜„μ‹μ— 일치), 빈 "()" μ΄κ±°λ‚˜ (널 λ¬Έμžμ—΄μ— 일치)(!), λŒ€κ΄„ν˜Έ μ‹μ΄κ±°λ‚˜ (μ•„λž˜ μ°Έκ³ ), '.'μ΄κ±°λ‚˜ (아무 문자 ν•œ κ°œμ™€ 일치), '^'μ΄κ±°λ‚˜ (ν–‰ μ‹œμž‘μ˜ 널 λ¬Έμžμ—΄μ— 일치), '$'μ΄κ±°λ‚˜ (ν–‰ 끝의 널 λ¬Έμžμ—΄μ— 일치), '\' 뒀에 "^.[$()|*+?{\" 쀑 ν•˜λ‚˜κ°€ μ˜€λŠ” κ²ƒμ΄κ±°λ‚˜ (κ·Έ 문자 κ·ΈλŒ€λ‘œμ™€ 일치), '\' λ‹€μŒμ— λ‹€λ₯Έ 문자(!)κ°€ μ˜€λŠ” κ²ƒμ΄κ±°λ‚˜ ('\'κ°€ μ—†λŠ” κ²ƒμ²˜λŸΌ κ·Έ 문자 κ·ΈλŒ€λ‘œμ™€ 일치(!)), λ‹€λ₯Έ 특수 의미 μ—†λŠ” 문자 ν•˜λ‚˜μ΄λ‹€ (κ·Έ λ¬Έμžμ™€ 일치). '{' 뒀에 μ˜€λŠ” 게 μˆ«μžκ°€ μ•„λ‹ˆλ©΄ ν•œκ³„ μ‹œμž‘μ΄ μ•„λ‹ˆλΌ 보톡 λ¬Έμžλ‹€(!). RE 식을 '\'둜 λλ§ˆμΉ˜λŠ” 건 μ λ²•ν•˜μ§€ μ•Šλ‹€.

λŒ€κ΄„ν˜Έ 식(bracket expression)μ΄λž€ "[]"둜 감싼 문자 λͺ©λ‘μ΄λ‹€. 보톡은 κ·Έ λͺ©λ‘μ˜ 아무 문자 ν•˜λ‚˜μ™€ μΌμΉ˜ν•œλ‹€ (단 μ•„λž˜ μ°Έκ³ ). λͺ©λ‘μ΄ '^'둜 μ‹œμž‘ν•˜λ©΄ κ·Έ λͺ©λ‘ λ‚˜λ¨Έμ§€μ— μ—†λŠ” 아무 문자 ν•˜λ‚˜μ™€ μΌμΉ˜ν•œλ‹€ (단 μ•„λž˜ μ°Έκ³ ). λͺ©λ‘ λ‚΄μ˜ 두 λ¬Έμžκ°€ '-'둜 연결돼 μžˆλŠ” 건 μ‘°ν•©μ—΄(collating sequence)μ—μ„œ κ·Έ λ‘˜ 사이 λ¬Έμžλ“€ λͺ¨λ‘(κ·Έ 두 λ¬Έμžλ„ 포함)에 ν•΄λ‹Ήν•˜λŠ” λ²”μœ„(range)λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. 예λ₯Ό λ“€μ–΄ ASCIIμ—μ„œ "[0-9]"λŠ” 10μ§„μˆ˜ μˆ«μžμ™€ μΌμΉ˜ν•œλ‹€. "a-c-e"처럼 두 λ²”μœ„μ˜ κ²ΉμΉ˜λŠ” 끝점을 ν•˜λ‚˜λ‘œ μ“°λŠ” 건 μ λ²•ν•˜μ§€ μ•Šλ‹€(!). λ²”μœ„λŠ” 쑰합열에 맀우 의쑴적이며 λ”°λΌμ„œ 이식 κ°€λŠ₯ν•œ ν”„λ‘œκ·Έλž¨μ—μ„œλŠ” μ‚¬μš©μ„ ν”Όν•˜λŠ” 게 μ’‹λ‹€.

λͺ©λ‘μ— ']' 자체λ₯Ό ν¬ν•¨μ‹œν‚€λ €λ©΄ 첫 번째 λ¬Έμžμ΄λ„λ‘ (κ·Έ μ•žμ— '^' κ°€λŠ₯) ν•˜λ©΄ λœλ‹€. '-' 자체λ₯Ό ν¬ν•¨μ‹œν‚€λ €λ©΄ 첫 λ²ˆμ§Έλ‚˜ λ§ˆμ§€λ§‰ λ¬Έμžμ΄λ„λ‘ ν•˜λ©΄ 되며, μ•„λ‹ˆλ©΄ λ²”μœ„μ˜ λ’€μͺ½ 끝점이어도 λœλ‹€. '-' 자체λ₯Ό λ²”μœ„μ˜ μ•žμͺ½ 끝점으둜 μ“°λ €λ©΄ "[." 및 ".]"둜 κ°μ‹Έμ„œ μ‘°ν•© ν•­λͺ©(collating element)으둜 λ§Œλ“€μ–΄ μ£Όλ©΄ λœλ‹€ (μ•„λž˜ μ°Έκ³ ). 이 κ²½μš°λ“€κ³Ό '['λ₯Ό μ“°λŠ” λͺ‡ κ°€μ§€ μ‘°ν•©λ“€(λ‹€μŒ 문단 μ°Έκ³ )을 μ œμ™Έν•˜λ©΄ λŒ€κ΄„ν˜Έ 내에선 '\'λ₯Ό ν¬ν•¨ν•œ 여타 λͺ¨λ“  특수 λ¬Έμžλ“€μ˜ 특수 μ˜λ―Έκ°€ μ—†μ–΄μ§„λ‹€.

λŒ€κ΄„ν˜Έ 식 λ‚΄μ—μ„œ μ‘°ν•© ν•­λͺ©(문자, ν•œ 문자인 κ²ƒμ²˜λŸΌ μ‘°ν•©λ˜λŠ” λ‹€λ¬Έμž μ—΄, λ˜λŠ” μ•žμ˜ λ‘˜ 쀑 ν•˜λ‚˜λ₯Ό κ°€λ¦¬ν‚€λŠ” μ‘°ν•©μ—΄ 이름)을 "[." 및 ".]"둜 감싼 것은 κ·Έ μ‘°ν•© ν•­λͺ©μ˜ 문자 열을 λ‚˜νƒ€λ‚Έλ‹€. κ·Έ 열은 λŒ€κ΄„ν˜Έ 식 λͺ©λ‘μ—μ„œ 단일 ν•­λͺ©μ΄λ‹€. λ”°λΌμ„œ λ‹€λ¬Έμž μ‘°ν•© ν•­λͺ©μ„ 담은 λŒ€κ΄„ν˜Έ 식이 μ—¬λŸ¬ λ¬Έμžμ— μΌμΉ˜ν•  수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄ μ‘°ν•© 열에 "ch"λΌλŠ” μ‘°ν•© ν•­λͺ©μ΄ 포함돼 μžˆλ‹€λ©΄ RE "[[.ch.]]*c"κ°€ "chchcc"의 처음 λ‹€μ„― λ¬Έμžμ— μΌμΉ˜ν•œλ‹€.

λŒ€κ΄„ν˜Έ 식 λ‚΄μ—μ„œ "[=" 및 "=]"둜 감싼 μ‘°ν•© ν•­λͺ©μ€ λ™μΉ˜λ₯˜(equivalence class)λ‘œμ„œ κ·Έ ν•­λͺ©κ³Ό λ™λ“±ν•œ λͺ¨λ“  μ‘°ν•© ν•­λͺ©λ“€(κ·Έ ν•­λͺ© μžμ²΄λ„ 포함)의 문자 열듀을 λ‚˜νƒ€λ‚Έλ‹€. (λ™λ“±ν•œ λ‹€λ₯Έ μ‘°ν•© ν•­λͺ©μ΄ μ—†μœΌλ©΄ "[." 및 ".]"둜 감싼 κ²ƒμ²˜λŸΌ μ·¨κΈ‰ν•œλ‹€.) 예λ₯Ό λ“€μ–΄ o와 ^κ°€ 같은 λ™μΉ˜λ₯˜μ— μ†ν•˜λ‹€λ©΄ "[[=o=]]", "[[=^=]]", "[o^]"κ°€ λͺ¨λ‘ 같은 κ±Έ λœ»ν•œλ‹€. λ™μΉ˜λ₯˜λŠ” λ²”μœ„μ˜ 끝점이 될 수 μ—†λ‹€(!).

λŒ€κ΄„ν˜Έ 식 λ‚΄μ—μ„œ "[:" 및 ":]"둜 감싼 문자 μœ ν˜•(character class) 이름은 κ·Έ μœ ν˜•μ— μ†ν•œ λͺ¨λ“  λ¬Έμžλ“€μ˜ λͺ©λ‘μ„ λ‚˜νƒ€λ‚Έλ‹€. ν‘œμ€€ 문자 μœ ν˜• 이름은 λ‹€μŒκ³Ό κ°™λ‹€.

alnum   digit   punct
alpha   graph   space
black   lower   upper
cntrl   print   xdigit

μ΄λŠ” wctype(3)에 μ •μ˜λΌ μžˆλŠ” 문자 μœ ν˜•λ“€μ΄λ‹€. λ‘œμΊ˜μ—μ„œ λ‹€λ₯Έ μœ ν˜•λ“€λ„ μ œκ³΅ν•  수 μžˆλ‹€. 문자 μœ ν˜•μ€ λ²”μœ„μ˜ 끝점으둜 μ“Έ 수 μ—†λ‹€.

ν•œ RE 식이 μ–΄λ–€ λ¬Έμžμ—΄μ˜ μ—¬λŸ¬ 뢀뢄열에 μΌμΉ˜ν•  수 μžˆλŠ” κ²½μš°μ—λŠ” λ¬Έμžμ—΄μ—μ„œ κ°€μž₯ 일찍 μ‹œμž‘ν•˜λŠ” 뢀뢄열에 μΌμΉ˜ν•˜κ²Œ λœλ‹€. κ·Έ μ§€μ μ—μ„œ μ‹œμž‘ν•˜λŠ” μ—¬λŸ¬ 뢀뢄열에 μΌμΉ˜ν•  수 있으면 κ°€μž₯ κΈ΄ 것에 μΌμΉ˜ν•˜κ²Œ λœλ‹€. ν•˜μœ„μ‹ μ—­μ‹œλ„ κ°€μž₯ κΈ΄ 뢀뢄열에 μΌμΉ˜ν•˜λ˜ 전체 일치 길이가 κ°€λŠ₯ν•œ ν•œ κΈΈμ–΄μ•Ό ν•œλ‹€λŠ” μ œμ•½ λ‚΄μ—μ„œμ΄λ©°, RE λ‚΄μ—μ„œ 일찍 μ‹œμž‘ν•˜λŠ” ν•˜μœ„μ‹μ΄ 이후 ν•˜μœ„μ‹λ³΄λ‹€ 높은 μš°μ„ μˆœμœ„λ₯Ό κ°€μ§„λ‹€. 더 μƒμœ„μ˜ ν•˜μœ„μ‹μ΄ κ·Έ 뢀뢄을 μ΄λ£¨λŠ” ν•˜μœ„μ‹λ³΄λ‹€ 높은 μš°μ„ μˆœμœ„λ₯Ό κ°€μ§„λ‹€λŠ” 점에 μœ μ˜ν•˜λΌ.

일치 κΈΈμ΄λŠ” μ‘°ν•© ν•­λͺ©μ΄ μ•„λ‹ˆλΌ 문자 λ‹¨μœ„λ‘œ μ„Όλ‹€. 널 λ¬Έμžμ—΄μ€ μΌμΉ˜ν•˜μ§€ μ•ŠλŠ” κ²ƒλ³΄λ‹€λŠ” κΈ΄ κ²ƒμœΌλ‘œ λ³Έλ‹€. 예λ₯Ό λ“€μ–΄ "bb*"λŠ” "abbbc"의 κ°€μš΄λ° μ„Έ λ¬Έμžμ— μΌμΉ˜ν•˜κ³ , "(wee|week)(knights|nights)"λŠ” "weeknights"의 10개 문자 λͺ¨λ‘μ— μΌμΉ˜ν•˜λ©°, "(.*).*"λ₯Ό "abc"에 맞좰 λ³Ό λ•Œ κ΄„ν˜Έ 친 ν•˜μœ„μ‹μ΄ μ„Έ 문자 λͺ¨λ‘μ— μΌμΉ˜ν•˜κ³ , "(a*)*"λ₯Ό "bc"에 맞좰 λ³Ό λ•Œ RE 식 전체와 κ΄„ν˜Έ 친 ν•˜μœ„μ‹ λͺ¨λ‘κ°€ 널 λ¬Έμžμ—΄μ— μΌμΉ˜ν•œλ‹€.

λŒ€μ†Œλ¬Έμž ꡬ별 μ—†λŠ” 검사λ₯Ό μ§€μ •ν•œ 경우 κ·Έ νš¨κ³ΌλŠ” μ•ŒνŒŒλ²³μ—μ„œ λŒ€μ†Œλ¬Έμž ꡬ뢄이 λͺ¨λ‘ 사라진 것과 κ°™λ‹€. ꡬ별이 μžˆλŠ” μ•ŒνŒŒλ²³μ΄ λŒ€κ΄„ν˜Έ 식 밖에 보톡 문자둜 λ“±μž₯ν•  λ•ŒλŠ” 두 경우 λͺ¨λ‘λ₯Ό 담은 λŒ€κ΄„ν˜Έ μ‹μœΌλ‘œ λ³€ν™˜λ˜λŠ” νš¨κ³Όκ°€ λ‚œλ‹€. 예λ₯Ό λ“€μ–΄ 'x'λŠ” "[xX]"κ°€ λœλ‹€. λŒ€κ΄„ν˜Έ 식 μ•ˆμ— λ“±μž₯ν•  λ•Œμ—λŠ” λŒ€μ‘ λ¬Έμžκ°€ κ·Έ λŒ€κ΄„ν˜Έ 식에 μΆ”κ°€λœλ‹€. κ·Έλž˜μ„œ 예λ₯Ό λ“€μ–΄ "[x]"λŠ” "[xX]"κ°€ 되고 "[^x]"λŠ” "[^xX]"κ°€ λœλ‹€.

RE 식 κΈΈμ΄μ—λŠ” νŠΉλ³„ν•œ μ œν•œμ΄ μ—†λ‹€(!). 이식성이 μžˆμ–΄μ•Ό ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ—μ„œλŠ” 256 λ°”μ΄νŠΈλ₯Ό λ„˜λŠ” REλ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 게 μ’‹λ‹€. κ΅¬ν˜„μ²΄μ—μ„œ 그런 REλ₯Ό 받아듀이지 μ•Šμ•„λ„ POSIX μ€€μˆ˜μΌ 수 μžˆλ‹€.

ꡬ식 ("κΈ°λ³Έ") μ •κ·œ ν‘œν˜„μ‹μ€ μ—¬λŸ¬ μΈ‘λ©΄μ—μ„œ λ‹€λ₯΄λ‹€. '|', '+', '?'κ°€ 보톡 문자이고 κ·Έ κΈ°λŠ₯에 λŒ€μ‘ν•˜λŠ” 게 μ—†λ‹€. ν•œκ³„μ˜ κ΅¬λΆ„μžκ°€ "\{" 및 "\}"이며 '{'와 '}'λŠ” 보톡 λ¬Έμžμ΄λ‹€. ν•˜μœ„μ‹μ˜ κ΄„ν˜Έκ°€ "\(" 및 "\)"이며 '('와 ')'λŠ” 보톡 λ¬Έμžμ΄λ‹€. '^'κ°€ RE μ‹œμž‘μ΄λ‚˜ κ΄„ν˜Έ 친 ν•˜μœ„μ‹μ˜ μ‹œμž‘(!)μ—μ„œλ₯Ό μ œμ™Έν•˜λ©΄ 보톡 문자이고, '$'κ°€ RE λμ΄λ‚˜ κ΄„ν˜Έ 친 ν•˜μœ„μ‹ 끝(!)μ—μ„œλ₯Ό μ œμ™Έν•˜λ©΄ 보톡 문자이며, '*'κ°€ RE μ‹œμž‘μ΄λ‚˜ κ΄„ν˜Έ 친 ν•˜μœ„μ‹μ˜ μ‹œμž‘(!)에 (λ˜λŠ” '^' 뒀에) λ“±μž₯ν•˜λŠ” 경우 보톡 λ¬Έμžμ΄λ‹€.

끝으둜 μ—­μ°Έμ‘°(back reference)λΌλŠ” μƒˆλ‘œμš΄ μ’…λ₯˜μ˜ μ›μžκ°€ μžˆλ‹€. '\' 뒀에 0 μ•„λ‹Œ 10μ§„μˆ˜ 숫자 dκ°€ 였면 d 번째 κ΄„ν˜Έ 친 ν•˜μœ„μ‹(μ—¬λŠ” κ΄„ν˜Έ μœ„μΉ˜μ— 따라 μ™Όμͺ½μ—μ„œ 였λ₯Έμͺ½μœΌλ‘œ 번호 λ§€κΉ€)에 μΌμΉ˜ν•œ 문자 μ—΄κ³Ό 같은 열에 μΌμΉ˜ν•œλ‹€. κ·Έλž˜μ„œ 예λ₯Ό λ“€μ–΄ "\([bc]\)\1"이 "bb"λ‚˜ "cc"μ—λŠ” μΌμΉ˜ν•˜μ§€λ§Œ "bc"μ—λŠ” μΌμΉ˜ν•˜μ§€ μ•ŠλŠ”λ‹€.

BUGS

REκ°€ 두 μ’…λ₯˜κ°€ μžˆλŠ” 점이 ꡬ리닀.

ν˜„ν–‰ POSIX.2 λͺ…μ„Έμ—μ„œλŠ” 짝 μ—†λŠ” '('κ°€ 없을 λ•Œ ')'κ°€ 보톡 문자라고 ν•˜κ³  μžˆλ‹€. μ΄λŠ” μ˜λ„μΉ˜ μ•Šμ€ 문ꡬ μ‹€μˆ˜μ˜ κ²°κ³Όμ˜€μœΌλ©° μ•„λ§ˆ λ°”λ€Œκ²Œ 될 것이닀. κ·Έ λ‚΄μš©μ— μ˜μ§€ν•˜λŠ” κ±Έ ν”Όν•΄μ•Ό ν•œλ‹€.

μ—­μ°Έμ‘°λŠ” λ”μ°ν•˜κ²Œ ꡬ리며 효율적인 κ΅¬ν˜„μ„ λ§Œλ“œλŠ” 데 μ‹¬κ°ν•œ 문제λ₯Ό μ•ΌκΈ°ν•œλ‹€. κ²Œλ‹€κ°€ μ’€ μ• λ§€ν•˜κ²Œ μ •μ˜λΌ μžˆλ‹€. ("a\(\(b\)*\2\)*d"λŠ” "abbbd"에 μΌμΉ˜ν• κΉŒ?) μ‚¬μš©μ„ ν”Όν•΄μ•Ό ν•œλ‹€.

λŒ€μ†Œλ¬Έμž ꡬ별 μ—†λŠ” 검사에 λŒ€ν•œ POSIX.2의 λͺ…μ„Έκ°€ μ• λ§€ν•˜λ‹€. μœ„μ— λ‚˜μ˜¨ "ν•œμͺ½μ΄ λͺ¨λ“  경우λ₯Ό λ‚˜νƒ€λƒ„"μ΄λΌλŠ” μ •μ˜λŠ” κ΅¬ν˜„μžλ“€μ΄ ν˜„μž¬ μ˜¬λ°”λ₯Έ 해석이라고 ν•©μ˜ν•˜λŠ” 방식이닀.

AUTHOR

이 νŽ˜μ΄μ§€λŠ” Henry Spencer의 regex νŒ¨ν‚€μ§€μ—μ„œ κ°€μ Έμ˜¨ 것이닀.

SEE ALSO

grep(1), regex(3)

POSIX.2 2.8절 (Regular Expression Notation)


2009-01-12

⚠️ **GitHub.com Fallback** ⚠️