티스토리 뷰

반응형

기본 방법

2018년 이후 ECMAScript에 새롭게 추가된 특수문자를 통해 더욱 쉽고 빠르게 유니코드를 사용할 수 있게 되었습니다

특수문자 참고 설명 예시 예시 설명
\p{...} 소문자 범주의 문자세트 [\p{Hangul}]+ 한글 문자열을 모두 추출한다
\P{...} 대문자 범주를 제외한 문자세트 [\P{Hangul}]+ 한글 이외의 문자열을 모두 추출한다
\X 대문자 확장된 유니코드 시퀸스
일부 언어에서는 지원하지 않음
[\X]+  

 

\p{...} 에서 { } 사이에 미리 선언된 키값을 넣어서 검색하게 됩니다

 

 

일반적으로 많이 사용하는 코드

언어 예시 설명
한글 [\p{Hangul}]+ 한글만 포함
일어 [\p{Hiragana}\p{Katakana}\p{Han}]+ 히라가나, 카타카나를 포함하고, 일본어의 경우 한자 따로 추가
한자 [\p{Han}]+ 한자
숫자 [0-9]+

[\p{Nd}]+
일반적인 아라비아 숫자만 캡쳐한다면 [0-9] 로도 문제없지만, 다른 국가의 숫자 문자를 캡쳐한다면 \p{Nd} 를 사용

 

 

지원되는 문자 코드

카테고리별로 구분된 문자 그룹

아래처럼 { } 사이에 해당 코드를 입력해서 사용 할 수 있습니다

/\p{L}/
/\p{Ll}/
카테고리 키 설명 및 범주 목록 링크 범주 문자
C 기타(Other) Cc, Cf, Cn, Co, Cs 를 모두 포함
  Cc 제어(Control) NUL(Null), SOH(Start of Heading), STX(Start of Text), ETX(End of Text), EOT(End of Transmission), ENQ(Enquiry), ...
  Cf 형식(Format) SHY(Soft Hyphen), ALM(Arabic Letter Mark), MVS(Mongolian Vowel Separator), ...
  Cn 할당되지 않음(Unassigned) 유니코드 표에 없는 모든 코드 포인트
  Co 사적 사용(Private use) 없음
  Cs 대리(Surrogate) 유니코드로 모든 문자를 담으려 하지만 UTF-16(2바이트)으로는 최대 65,536자 밖에 표현하지 못하는 문제를 해결하기 위해 UTF-16에서 4바이트를 사용해 표현하기 위해 예약된 영역 (참고 사이트)
L 문자(Letter) Ll, Lm, Lo, Lt, Lu 를 모두 포함
  Ll 소문자(Lowercase Letter)
(소문자 L)
a b c d ... ă ą ć ... ფ ქ ....
  Lm 수정자 문자(Modifier Letter) ʰ ʱ ʲ ʳ ʴ ʵ ʶ ʷ ʸ ʹ ʺ ʻ ʼ ʽ ʾ ʿ ˀ ˁ .....
  Lo 기타 문자(Other Letter) ª º ƻ ǀ ǁ ǂ ǃ ʔ ...
  Lt 제목 문자(Titlecase Letter) Dž  Lj  Nj  Dz  ᾈ  ᾉ  ᾊ  ᾋ  ᾌ  ᾍ  ᾎ  ᾏ ...
  Lu 대문자(Uppercase Letter) A B C D E ... À Á Â Ã Ä ... Ɵ Ơ Ƣ Ƥ Ʀ Ƨ ...
M 마크(Mark) Mc, Me, Mn 을 모두 포함
  Mc 간격 표시(Spacing Mark) ः ऻ ा ि ी ॉ ... 〮 〯 ...
옛한글 방점 같이 특정 언어에서 사용되는 기호
  Me 둘러싸는 표시(Enclosing Mark) z     ⃝ →  z ⃝ (U+20DD)와 같이 다른 문자를 둘러싸는 결합
  Mn 비간격 표시(Nonspacing Mark) ◌̀ ◌́ ◌̂ ◌̃ ◌̄  ◌̅ ....
예를들어 a 문자와 결합하면 발음 구별 기호 á 와 같음
N 숫자(Number) Nd, Nl, No 를 모두 포함
  Nd 10진수(Decimal number) 0 1 2 3 4 5 6 7 8 9 ٠١٢٣٤٥٦٧٨٩ ... 등 다른 언어의 숫자 문자
  Nl 문자 숫자(Letter Number) Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ ... 𒐣 𒐤 𒐥 ... 𒑛 𒑜 𒑝 ... 다른 문자형 숫자
  No 기타 숫자(Other Number) ⁰ ¹ ² ³ ... ₀ ₁ ₂ ₃ ... ½ ⅓ ⅔ ¼ ... ① ② ③ ... 등
P 부호(Punctuation) Pc, Pd, Ps, Pe, Pi, Pf, Po 를 모두 포함
  Pc 연결 부호(Connector Punctuation) _ ‿ ⁀ ⁔ ︳ ︴ ﹍ ﹎ ﹏ _ 
  Pd 대시 부호(Dash Punctuation) - ֊ ־ ᐀ ᠆ ‐ 등
  Ps 여는 부호(Open punctuation) ( [ { ༺ ༼ ᚛ 등
  Pe 닫는 부호(Close punctuation) ) ] } ༻ ༽ ᚜ 등
  Pi 시작 부호(Initial punctuation) « ‘ ‛ “ ‟ ‹ ⸂ ⸄ ⸉ ⸌ ⸜ ⸠
  Pf 끝맺음 부호(Final punctuation) » ’ ” › ⸃ ⸅ ⸊ ⸍ ⸝ ⸡
  Po 기타 부호(Other punctuation) ! " # % & ' * , . / : ; .... ၏ ჻ ፠ ፡ 등 일반적으로 많이 쓰는 특수문자를 포함한 문자들
S 심볼(Symbol) Sc, Sk, Sm, So 을 모두 포함
  Sc 통화 기호(Currency Symbol) $ ¢ £ ¤ ¥ ֏ 등 각 나라별 통화 기호
  Sk 수정 기호(Modifier Symbol) ^ ` ¨ ¯ ´ ¸ 등 문자나 기호의 발음, 의미, 형태 등을 조정하는데 사용하는 기호
  Sm 수학 기호(Math Symbol) + < = > | ~ ¬ ± × ÷ ϶ ؆ 등 수학 기호
  So 기타 기호(Other Symbol) ¦ © ® ° ҂ ֍ ֎ ؎ ؏ ۞ ۩ 등
Z 분리 기호(Separator)  
  Zl 줄 구분자(Line Separator) 줄을 구분하는데 사용되는 문자 (U+2028)
  Zp 문단 구분자(Paragraph Separator) 문단을 구분하는데 사용되는 문자 (U+2029)
  Zs 공백 구분자(Space Separator) 공백(U+0020), 줄바꿈 없는 공백(NBSP, U+00A0) 등

 

 

지원되는 언어 코드

// 한글, 일어(한자 포함) 캡쳐시 예시
/([\p{Hangul}\p{Hiragana}\p{Katakana}\p{Han}]+)/
Arabic Armenian Avestan Balinese Bamum
Batak Bengali Bopomofo Brahmi Braille
Buginese Buhid Unified Canadian Aboriginal Syllabics Carian Chakma
Cham Cherokee Common Coptic Cuneiform
Cypriot syllabary Cyrillic Deseret Devanagari Egyptian hieroglyphs
Ethiopic Georgian Glagolitic Gothic Greek
Gujarati Gurmukhi Han (Hanzi, Kanji, Hanja)
한자
Hangul
한글
Hanunoo
Hebrew Hiragana
히라가나
Imperial Aramaic Code for inherited script Inscriptional Pahlavi
Inscriptional Parthian Javanese Kaithi Kannada Katakana
카타카나
Kayah Li Kharoshthi Khmer Lao Latin
라틴
Lepcha Limbu Linear A Linear B Lisu
Lycian Lydian Malayalam Mandaic, Mandaean Meitei Mayek
Meroitic Cursive Meroitic Hieroglyphs Miao Mongolian Myanmar
New Tai Lue N’Ko Ogham Old Italic Old Persian
Old South Arabian Old Turkic Ol Chiki Oriya Osmanya
Phags-pa Phoenician Rejang Runic Samaritan
Saurashtra Sharada Shavian Sinhala Sora Sompeng
Sundanese Syloti Nagri Syriac Tagalog Tagbanwa
Tai Le Tai Tham Tai Viet Takri Tamil
Telugu Thaana Thai Tibetan Tifinagh
Ugaritic Vai Yi    

 


참고사이트

반응형