Search code examples
unicodeparenthesescurly-bracessquare-bracketbraces

List of all Unicode's open/close brackets


What is a list of every Unicode bracket-like characters (including, for example: {}[]()<>)? What is a good way to search for Unicode characters?


Solution

  • There is a plain-text database of information about every Unicode character available from the Unicode Consortium; the format is described in Unicode Annex #44. The primary information is contained in UnicodeData.txt. Open and close punctuation characters are denoted with Ps (punctuation start) and Pe (punctuation end) in the General_Category field (the third field, delimited by ;). Look for those character, and you'll find what you're looking for.

    Note that not all characters that you consider brackets may be listed; for instance, quotation marks (including "«»"). are indicated with Pi and Pf (initial and final punctuation), so you might want to include those as well. And some character, like < and >, are used as brackets in some contexts (such as HTML/XML), while they are considered math symbols (Sm) in UnicodeData.txt. Those you are going to have to find by hand; there is no pre-determined listing of those.

    Here's a quick Bash script to get this information, and its output. I've included both brackets and quotes. (note: on some Bash implementations UTF-8 printing has a bug that causes it to print U+00AB "«" and U+00BB "»" as "?", and some terminals don't have the ability to render all characters correctly.)

    while IFS=';' read number name category rest
    do 
        if [[ "$category" =~ Ps|Pe|Pi|Pf ]]
        then 
            printf "%s (U+%s, %s): \u"$number"\n" "$name" "$number" "$category"
        fi
    done <UnicodeData.txt
    
    LEFT PARENTHESIS (U+0028, Ps): (
    RIGHT PARENTHESIS (U+0029, Pe): )
    LEFT SQUARE BRACKET (U+005B, Ps): [
    RIGHT SQUARE BRACKET (U+005D, Pe): ]
    LEFT CURLY BRACKET (U+007B, Ps): {
    RIGHT CURLY BRACKET (U+007D, Pe): }
    LEFT-POINTING DOUBLE ANGLE QUOTATION MARK (U+00AB, Pi): «
    RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (U+00BB, Pf): »
    TIBETAN MARK GUG RTAGS GYON (U+0F3A, Ps): ༺
    TIBETAN MARK GUG RTAGS GYAS (U+0F3B, Pe): ༻
    TIBETAN MARK ANG KHANG GYON (U+0F3C, Ps): ༼
    TIBETAN MARK ANG KHANG GYAS (U+0F3D, Pe): ༽
    OGHAM FEATHER MARK (U+169B, Ps): ᚛
    OGHAM REVERSED FEATHER MARK (U+169C, Pe): ᚜
    LEFT SINGLE QUOTATION MARK (U+2018, Pi): ‘
    RIGHT SINGLE QUOTATION MARK (U+2019, Pf): ’
    SINGLE LOW-9 QUOTATION MARK (U+201A, Ps): ‚
    SINGLE HIGH-REVERSED-9 QUOTATION MARK (U+201B, Pi): ‛
    LEFT DOUBLE QUOTATION MARK (U+201C, Pi): “
    RIGHT DOUBLE QUOTATION MARK (U+201D, Pf): ”
    DOUBLE LOW-9 QUOTATION MARK (U+201E, Ps): „
    DOUBLE HIGH-REVERSED-9 QUOTATION MARK (U+201F, Pi): ‟
    SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039, Pi): ‹
    SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A, Pf): ›
    LEFT SQUARE BRACKET WITH QUILL (U+2045, Ps): ⁅
    RIGHT SQUARE BRACKET WITH QUILL (U+2046, Pe): ⁆
    SUPERSCRIPT LEFT PARENTHESIS (U+207D, Ps): ⁽
    SUPERSCRIPT RIGHT PARENTHESIS (U+207E, Pe): ⁾
    SUBSCRIPT LEFT PARENTHESIS (U+208D, Ps): ₍
    SUBSCRIPT RIGHT PARENTHESIS (U+208E, Pe): ₎
    LEFT-POINTING ANGLE BRACKET (U+2329, Ps): 〈
    RIGHT-POINTING ANGLE BRACKET (U+232A, Pe): 〉
    MEDIUM LEFT PARENTHESIS ORNAMENT (U+2768, Ps): ❨
    MEDIUM RIGHT PARENTHESIS ORNAMENT (U+2769, Pe): ❩
    MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT (U+276A, Ps): ❪
    MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT (U+276B, Pe): ❫
    MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT (U+276C, Ps): ❬
    MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT (U+276D, Pe): ❭
    HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT (U+276E, Ps): ❮
    HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT (U+276F, Pe): ❯
    HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT (U+2770, Ps): ❰
    HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT (U+2771, Pe): ❱
    LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT (U+2772, Ps): ❲
    LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT (U+2773, Pe): ❳
    MEDIUM LEFT CURLY BRACKET ORNAMENT (U+2774, Ps): ❴
    MEDIUM RIGHT CURLY BRACKET ORNAMENT (U+2775, Pe): ❵
    LEFT S-SHAPED BAG DELIMITER (U+27C5, Ps): ⟅
    RIGHT S-SHAPED BAG DELIMITER (U+27C6, Pe): ⟆
    MATHEMATICAL LEFT WHITE SQUARE BRACKET (U+27E6, Ps): ⟦
    MATHEMATICAL RIGHT WHITE SQUARE BRACKET (U+27E7, Pe): ⟧
    MATHEMATICAL LEFT ANGLE BRACKET (U+27E8, Ps): ⟨
    MATHEMATICAL RIGHT ANGLE BRACKET (U+27E9, Pe): ⟩
    MATHEMATICAL LEFT DOUBLE ANGLE BRACKET (U+27EA, Ps): ⟪
    MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET (U+27EB, Pe): ⟫
    MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET (U+27EC, Ps): ⟬
    MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET (U+27ED, Pe): ⟭
    MATHEMATICAL LEFT FLATTENED PARENTHESIS (U+27EE, Ps): ⟮
    MATHEMATICAL RIGHT FLATTENED PARENTHESIS (U+27EF, Pe): ⟯
    LEFT WHITE CURLY BRACKET (U+2983, Ps): ⦃
    RIGHT WHITE CURLY BRACKET (U+2984, Pe): ⦄
    LEFT WHITE PARENTHESIS (U+2985, Ps): ⦅
    RIGHT WHITE PARENTHESIS (U+2986, Pe): ⦆
    Z NOTATION LEFT IMAGE BRACKET (U+2987, Ps): ⦇
    Z NOTATION RIGHT IMAGE BRACKET (U+2988, Pe): ⦈
    Z NOTATION LEFT BINDING BRACKET (U+2989, Ps): ⦉
    Z NOTATION RIGHT BINDING BRACKET (U+298A, Pe): ⦊
    LEFT SQUARE BRACKET WITH UNDERBAR (U+298B, Ps): ⦋
    RIGHT SQUARE BRACKET WITH UNDERBAR (U+298C, Pe): ⦌
    LEFT SQUARE BRACKET WITH TICK IN TOP CORNER (U+298D, Ps): ⦍
    RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER (U+298E, Pe): ⦎
    LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER (U+298F, Ps): ⦏
    RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER (U+2990, Pe): ⦐
    LEFT ANGLE BRACKET WITH DOT (U+2991, Ps): ⦑
    RIGHT ANGLE BRACKET WITH DOT (U+2992, Pe): ⦒
    LEFT ARC LESS-THAN BRACKET (U+2993, Ps): ⦓
    RIGHT ARC GREATER-THAN BRACKET (U+2994, Pe): ⦔
    DOUBLE LEFT ARC GREATER-THAN BRACKET (U+2995, Ps): ⦕
    DOUBLE RIGHT ARC LESS-THAN BRACKET (U+2996, Pe): ⦖
    LEFT BLACK TORTOISE SHELL BRACKET (U+2997, Ps): ⦗
    RIGHT BLACK TORTOISE SHELL BRACKET (U+2998, Pe): ⦘
    LEFT WIGGLY FENCE (U+29D8, Ps): ⧘
    RIGHT WIGGLY FENCE (U+29D9, Pe): ⧙
    LEFT DOUBLE WIGGLY FENCE (U+29DA, Ps): ⧚
    RIGHT DOUBLE WIGGLY FENCE (U+29DB, Pe): ⧛
    LEFT-POINTING CURVED ANGLE BRACKET (U+29FC, Ps): ⧼
    RIGHT-POINTING CURVED ANGLE BRACKET (U+29FD, Pe): ⧽
    LEFT SUBSTITUTION BRACKET (U+2E02, Pi): ⸂
    RIGHT SUBSTITUTION BRACKET (U+2E03, Pf): ⸃
    LEFT DOTTED SUBSTITUTION BRACKET (U+2E04, Pi): ⸄
    RIGHT DOTTED SUBSTITUTION BRACKET (U+2E05, Pf): ⸅
    LEFT TRANSPOSITION BRACKET (U+2E09, Pi): ⸉
    RIGHT TRANSPOSITION BRACKET (U+2E0A, Pf): ⸊
    LEFT RAISED OMISSION BRACKET (U+2E0C, Pi): ⸌
    RIGHT RAISED OMISSION BRACKET (U+2E0D, Pf): ⸍
    LEFT LOW PARAPHRASE BRACKET (U+2E1C, Pi): ⸜
    RIGHT LOW PARAPHRASE BRACKET (U+2E1D, Pf): ⸝
    LEFT VERTICAL BAR WITH QUILL (U+2E20, Pi): ⸠
    RIGHT VERTICAL BAR WITH QUILL (U+2E21, Pf): ⸡
    TOP LEFT HALF BRACKET (U+2E22, Ps): ⸢
    TOP RIGHT HALF BRACKET (U+2E23, Pe): ⸣
    BOTTOM LEFT HALF BRACKET (U+2E24, Ps): ⸤
    BOTTOM RIGHT HALF BRACKET (U+2E25, Pe): ⸥
    LEFT SIDEWAYS U BRACKET (U+2E26, Ps): ⸦
    RIGHT SIDEWAYS U BRACKET (U+2E27, Pe): ⸧
    LEFT DOUBLE PARENTHESIS (U+2E28, Ps): ⸨
    RIGHT DOUBLE PARENTHESIS (U+2E29, Pe): ⸩
    LEFT ANGLE BRACKET (U+3008, Ps): 〈
    RIGHT ANGLE BRACKET (U+3009, Pe): 〉
    LEFT DOUBLE ANGLE BRACKET (U+300A, Ps): 《
    RIGHT DOUBLE ANGLE BRACKET (U+300B, Pe): 》
    LEFT CORNER BRACKET (U+300C, Ps): 「
    RIGHT CORNER BRACKET (U+300D, Pe): 」
    LEFT WHITE CORNER BRACKET (U+300E, Ps): 『
    RIGHT WHITE CORNER BRACKET (U+300F, Pe): 』
    LEFT BLACK LENTICULAR BRACKET (U+3010, Ps): 【
    RIGHT BLACK LENTICULAR BRACKET (U+3011, Pe): 】
    LEFT TORTOISE SHELL BRACKET (U+3014, Ps): 〔
    RIGHT TORTOISE SHELL BRACKET (U+3015, Pe): 〕
    LEFT WHITE LENTICULAR BRACKET (U+3016, Ps): 〖
    RIGHT WHITE LENTICULAR BRACKET (U+3017, Pe): 〗
    LEFT WHITE TORTOISE SHELL BRACKET (U+3018, Ps): 〘
    RIGHT WHITE TORTOISE SHELL BRACKET (U+3019, Pe): 〙
    LEFT WHITE SQUARE BRACKET (U+301A, Ps): 〚
    RIGHT WHITE SQUARE BRACKET (U+301B, Pe): 〛
    REVERSED DOUBLE PRIME QUOTATION MARK (U+301D, Ps): 〝
    DOUBLE PRIME QUOTATION MARK (U+301E, Pe): 〞
    LOW DOUBLE PRIME QUOTATION MARK (U+301F, Pe): 〟
    ORNATE LEFT PARENTHESIS (U+FD3E, Ps): ﴾
    ORNATE RIGHT PARENTHESIS (U+FD3F, Pe): ﴿
    PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET (U+FE17, Ps): ︗
    PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET (U+FE18, Pe): ︘
    PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS (U+FE35, Ps): ︵
    PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS (U+FE36, Pe): ︶
    PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET (U+FE37, Ps): ︷
    PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET (U+FE38, Pe): ︸
    PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET (U+FE39, Ps): ︹
    PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET (U+FE3A, Pe): ︺
    PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET (U+FE3B, Ps): ︻
    PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET (U+FE3C, Pe): ︼
    PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET (U+FE3D, Ps): ︽
    PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET (U+FE3E, Pe): ︾
    PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET (U+FE3F, Ps): ︿
    PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET (U+FE40, Pe): ﹀
    PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET (U+FE41, Ps): ﹁
    PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET (U+FE42, Pe): ﹂
    PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET (U+FE43, Ps): ﹃
    PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET (U+FE44, Pe): ﹄
    PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET (U+FE47, Ps): ﹇
    PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET (U+FE48, Pe): ﹈
    SMALL LEFT PARENTHESIS (U+FE59, Ps): ﹙
    SMALL RIGHT PARENTHESIS (U+FE5A, Pe): ﹚
    SMALL LEFT CURLY BRACKET (U+FE5B, Ps): ﹛
    SMALL RIGHT CURLY BRACKET (U+FE5C, Pe): ﹜
    SMALL LEFT TORTOISE SHELL BRACKET (U+FE5D, Ps): ﹝
    SMALL RIGHT TORTOISE SHELL BRACKET (U+FE5E, Pe): ﹞
    FULLWIDTH LEFT PARENTHESIS (U+FF08, Ps): (
    FULLWIDTH RIGHT PARENTHESIS (U+FF09, Pe): )
    FULLWIDTH LEFT SQUARE BRACKET (U+FF3B, Ps): [
    FULLWIDTH RIGHT SQUARE BRACKET (U+FF3D, Pe): ]
    FULLWIDTH LEFT CURLY BRACKET (U+FF5B, Ps): {
    FULLWIDTH RIGHT CURLY BRACKET (U+FF5D, Pe): }
    FULLWIDTH LEFT WHITE PARENTHESIS (U+FF5F, Ps): ⦅
    FULLWIDTH RIGHT WHITE PARENTHESIS (U+FF60, Pe): ⦆
    HALFWIDTH LEFT CORNER BRACKET (U+FF62, Ps): 「
    HALFWIDTH RIGHT CORNER BRACKET (U+FF63, Pe): 」