字元類是一個字元集,如果字元集中的任何一個字元有匹配,它就會找到該匹配項。
基本介紹
- 中文名:字元類
- 外文名:character classes
- 數字字元:[:digit:]
- 字母字元:[:alpha:]
- 控制字元:[:cntrl:]
定義
正則表達式中的字元類
- 正字元組。 輸入字元串中的字元必須匹配一組指定的字元中的某個字元。
- 負字元組。 輸入字元串中的字元不得匹配一組指定的字元中的某個字元。
- 任意字元。 正則表達式中的 .(圓點或句點)字元是匹配除 \n 之外的任何字元的通配符字元。
- 通用 Unicode 類別或命名塊。 輸入字元串中的字元必須為特定 Unicode 類別的成員,或必須位於一系列連續的 Unicode 字元中才能成功匹配。
- 負通用 Unicode 類別或命名塊。 輸入字元串中的字元不得為特定 Unicode 類別的成員,也不得位於一系列連續的 Unicode 字元中以便成功匹配。
- 單詞字元。 輸入字元串中的字元可以屬於適合單詞中字元的任何 Unicode 類別。
- 非單詞字元。 輸入字元串中的字元可以屬於作為非單詞字元的任何 Unicode 類別。
- 空白字元。 輸入字元串中的字元可以是任何 Unicode 分隔設定字元以及眾多控制字元中的任一字元。
- 非空白字元。 輸入字元串中的字元可以是作為非空白字元的任何字元。
- 十進制數字。 輸入字元串中的字元可以是歸類為 Unicode 十進制數字的眾多字元中的任一字元。
- 非十進制數字。 輸入字元串中的字元可以是任何非 Unicode 十進制數字。
正字元組:[ ]
模式 | 描述 |
---|---|
[aeiou] | 匹配所有元音。 |
[\p{P}\d] | 匹配所有標點符號和十進制數字字元。 |
[\s\p{P}] | 匹配所有空白和標點符號。 |
負字元組:[^]
模式 | 描述 |
---|---|
[^aeiou] | 匹配除元音以外的所有字元。 |
[^\p{P}\d] | 匹配標點符號和十進制數字字元以外的所有字元。 |
任意字元:.
- 如果通過 RegexOptions.Singleline 選項修改正則表達式模式,或者通過 . 選項修改包含 s 字元類的模式的部分,則 . 可匹配任何字元。
- 正字元組或負字元組中的句點字元將被視為原義句點字元,而非字元類。
Unicode類別或Unicode塊:\p{}
負 Unicode 類別或 Unicode 塊:\P {}
單詞字元:\w
類別 | 描述 |
---|---|
Ll | 字母,小寫 |
Lu | 字母,大寫 |
Lt | 字母,首字母大寫 |
Lo | 字母,其他 |
Lm | 字母,修飾符 |
Nd | 數字,十進制數 |
Pc | 標點,連線符。 此類別包含 10 個字元,最常用的字元是 LOWLINE 字元 (_),u+005F。 |
非單詞字元:\W
類別 | 描述 |
---|---|
Ll | 字母,小寫 |
Lu | 字母,大寫 |
Lt | 字母,首字母大寫 |
Lo | 字母,其他 |
Lm | 字母,修飾符 |
Nd | 數字,十進制數 |
Pc | 標點,連線符。 此類別包含 10 個字元,最常用的字元是 LOWLINE 字元 (_),u+005F。 |
空白字元:\s
類別 | 描述 |
---|---|
\f | 窗體換頁符,\u000C。 |
\n | 換行符,\u000A。 |
\r | 回車符,\u000D。 |
\t | 制表符,\u0009。 |
\v | 垂直制表符,\u000B。 |
\x85 | 省略號或 NEXT LINE (NEL) 字元 (…),\u0085。 |
\p{Z} | 匹配任何分隔設定。 |
非空白字元:\S
十進制數字字元:\d
非數字字元:\D
支持的 Unicode 常規類別
類別 | 描述 |
---|---|
Lu | 字母,大寫 |
Ll | 字母,小寫 |
Lt | 字母,首字母大寫 |
Lm | 字母,修飾符 |
Lo | 字母,其他 |
L | 所有字母字元。 這包括 Lu、Ll、Lt、Lm 和 Lo 字元。 |
Mn | 標記,非間距 |
Mc | 標記,間距組合 |
Me | 標記,封閉 |
M | 所有音調符號標記。 這包括 Mn、Mc 和 Me 類別。 |
Nd | 數字,十進制數 |
Nl | 數字,字母 |
No | 數字,其他 |
N | 所有數字。 這包括 Nd、Nl 和 No 類別。 |
Pc | 標點,連線符 |
Pd | 標點,短劃線 |
Ps | 標點,開始 |
Pe | 標點,結束 |
Pi | 標點,前引號(根據具體使用情況,作用可能像 Ps 或 Pe) |
Pf | 標點,後引號(根據具體使用情況,作用可能像 Ps 或 Pe) |
Po | 標點,其他 |
P | 所有標點字元。 這包括 Pc、Pd、Ps, Pe、Pi、Pf 和 Po 類別。 |
Sm | 符號,數學 |
Sc | 符號,貨幣 |
Sk | 符號,修飾符 |
So | 符號,其他 |
S | 所有符號。 這包括 Sm、Sc、Sk 和 So 類別。 |
Zs | 分隔設定,空白 |
Zl | 分隔設定,行 |
Zp | 分隔設定,段落 |
Z | 所有分隔設定字元。 這包括 Zs、Zl 和 Zp 類別。 |
Cc | 其他,控制 |
Cf | 其他,格式 |
Cs | 其他,代理項 |
Co | 其他,私用 |
Cn | 其他,未賦值(任何字元都不具有此屬性) |
C | 所有控制字元。 這包括 Cc、Cf、Cs、Co 和 Cn 類別。 |
支持的命名塊
碼位範圍 | 塊名稱 |
---|---|
0000 - 007F | IsBasicLatin |
0080 - 00FF | IsLatin-1Supplement |
0100 - 017F | IsLatinExtended-A |
0180 - 024F | IsLatinExtended-B |
0250 - 02AF | IsIPAExtensions |
02B0 - 02FF | IsSpacingModifierLetters |
0300 - 036F | IsCombiningDiacriticalMarks |
0370 - 03FF | IsGreek - 或 - IsGreekandCoptic |
0400 - 04FF | IsCyrillic |
0500 - 052F | IsCyrillicSupplement |
0530 - 058F | IsArmenian |
0590 - 05FF | IsHebrew |
0600 - 06FF | IsArabic |
0700 - 074F | IsSyriac |
0780 - 07BF | IsThaana |
0900 - 097F | IsDevanagari |
0980 - 09FF | IsBengali |
0A00 - 0A7F | IsGurmukhi |
0A80 - 0AFF | IsGujarati |
0B00 - 0B7F | IsOriya |
0B80 - 0BFF | IsTamil |
0C00 - 0C7F | IsTelugu |
0C80 - 0CFF | IsKannada |
0D00 - 0D7F | IsMalayalam |
0D80 - 0DFF | IsSinhala |
0E00 - 0E7F | IsThai |
0E80 - 0EFF | IsLao |
0F00 - 0FFF | IsTibetan |
1000 - 109F | IsMyanmar |
10A0 - 10FF | IsGeorgian |
1100 - 11FF | IsHangulJamo |
1200 - 137F | IsEthiopic |
13A0 - 13FF | IsCherokee |
1400 - 167F | IsUnifiedCanadianAboriginalSyllabics |
1680 - 169F | IsOgham |
16A0 - 16FF | IsRunic |
1700 - 171F | IsTagalog |
1720 - 173F | IsHanunoo |
1740 - 175F | IsBuhid |
1760 - 177F | IsTagbanwa |
1780 - 17FF | IsKhmer |
1800 - 18AF | IsMongolian |
1900 - 194F | IsLimbu |
1950 - 197F | IsTaiLe |
19E0 - 19FF | IsKhmerSymbols |
1D00 - 1D7F | IsPhoneticExtensions |
1E00 - 1EFF | IsLatinExtendedAdditional |
1F00 - 1FFF | IsGreekExtended |
2000 - 206F | IsGeneralPunctuation |
2070 - 209F | IsSuperscriptsandSubscripts |
20A0 - 20CF | IsCurrencySymbols |
20D0 - 20FF | IsCombiningDiacriticalMarksforSymbols - 或 - IsCombiningMarksforSymbols |
2100 - 214F | IsLetterlikeSymbols |
2150 - 218F | IsNumberForms |
2190 - 21FF | IsArrows |
2200 - 22FF | IsMathematicalOperators |
2300 - 23FF | IsMiscellaneousTechnical |
2400 - 243F | IsControlPictures |
2440 - 245F | IsOpticalCharacterRecognition |
2460 - 24FF | IsEnclosedAlphanumerics |
2500 - 257F | IsBoxDrawing |
2580 - 259F | IsBlockElements |
25A0 - 25FF | IsGeometricShapes |
2600 - 26FF | IsMiscellaneousSymbols |
2700 - 27BF | IsDingbats |
27C0 - 27EF | IsMiscellaneousMathematicalSymbols-A |
27F0 - 27FF | IsSupplementalArrows-A |
2800 - 28FF | IsBraillePatterns |
2900 - 297F | IsSupplementalArrows-B |
2980 - 29FF | IsMiscellaneousMathematicalSymbols-B |
2A00 - 2AFF | IsSupplementalMathematicalOperators |
2B00 - 2BFF | IsMiscellaneousSymbolsandArrows |
2E80 - 2EFF | IsCJKRadicalsSupplement |
2F00 - 2FDF | IsKangxiRadicals |
2FF0 - 2FFF | IsIdeographicDescriptionCharacters |
3000 - 303F | IsCJKSymbolsandPunctuation |
3040 - 309F | IsHiragana |
30A0 - 30FF | IsKatakana |
3100 - 312F | IsBopomofo |
3130 - 318F | IsHangulCompatibilityJamo |
3190 - 319F | IsKanbun |
31A0 - 31BF | IsBopomofoExtended |
31F0 - 31FF | IsKatakanaPhoneticExtensions |
3200 - 32FF | IsEnclosedCJKLettersandMonths |
3300 - 33FF | IsCJKCompatibility |
3400 - 4DBF | IsCJKUnifiedIdeographsExtensionA |
4DC0 - 4DFF | IsYijingHexagramSymbols |
4E00 - 9FFF | IsCJKUnifiedIdeographs |
A000 - A48F | IsYiSyllables |
A490 - A4CF | IsYiRadicals |
AC00 - D7AF | IsHangulSyllables |
D800 - DB7F | IsHighSurrogates |
DB80 - DBFF | IsHighPrivateUseSurrogates |
DC00 - DFFF | IsLowSurrogates |
E000 - F8FF | IsPrivateUse 或 IsPrivateUseArea |
F900 - FAFF | IsCJKCompatibilityIdeographs |
FB00 - FB4F | IsAlphabeticPresentationForms |
FB50 - FDFF | IsArabicPresentationForms-A |
FE00 - FE0F | IsVariationSelectors |
FE20 - FE2F | IsCombiningHalfMarks |
FE30 - FE4F | IsCJKCompatibilityForms |
FE50 - FE6F | IsSmallFormVariants |
FE70 - FEFF | IsArabicPresentationForms-B |
FF00 - FFEF | IsHalfwidthandFullwidthForms |
FFF0 - FFFF | IsSpecials |
字元類減法:
POSIX風格的正則表達式
論述
POSIX字元類型
類 | 描述 | 擴展 |
[:alnum:] | 字母與數字字元 | [0-9a-zA-Z] |
[:digit:] | 數字字元 | [a-zA-Z] |
[:alpha:] | 字母字元 | [a-zA-Z] |
[:blank:] | 空格與制表符 | [ \t] |
[:cntrl:] | 控制字元 | [\x01-\x1F] |
[:graph:] | 可列印與可見字元 | [^\x01-\x20] |
[:lower:] | 小寫字元 | [a-z] |
[:upper:] | 大寫字元 | [A-Z] |
[:print:] | 可列印字元 | [\t\x20-\xFF] |
[:punct:] | 標點字元 | [-!"#$%&'( )*+,./:;<=>?@[\\\]^_'{|}~] |