{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/corefx/issues/29881","repository_url":"https://api.github.com/repos/dotnet/corefx","labels_url":"https://api.github.com/repos/dotnet/corefx/issues/29881/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/corefx/issues/29881/comments","events_url":"https://api.github.com/repos/dotnet/corefx/issues/29881/events","html_url":"https://github.com/dotnet/corefx/issues/29881","id":325902921,"node_id":"MDU6SXNzdWUzMjU5MDI5MjE=","number":29881,"title":"Add Escapes helper class for Regex","user":{"login":"MohammadHamdyGhanem","id":29876310,"node_id":"MDQ6VXNlcjI5ODc2MzEw","avatar_url":"https://avatars0.githubusercontent.com/u/29876310?v=4","gravatar_id":"","url":"https://api.github.com/users/MohammadHamdyGhanem","html_url":"https://github.com/MohammadHamdyGhanem","followers_url":"https://api.github.com/users/MohammadHamdyGhanem/followers","following_url":"https://api.github.com/users/MohammadHamdyGhanem/following{/other_user}","gists_url":"https://api.github.com/users/MohammadHamdyGhanem/gists{/gist_id}","starred_url":"https://api.github.com/users/MohammadHamdyGhanem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MohammadHamdyGhanem/subscriptions","organizations_url":"https://api.github.com/users/MohammadHamdyGhanem/orgs","repos_url":"https://api.github.com/users/MohammadHamdyGhanem/repos","events_url":"https://api.github.com/users/MohammadHamdyGhanem/events{/privacy}","received_events_url":"https://api.github.com/users/MohammadHamdyGhanem/received_events","type":"User","site_admin":false},"labels":[{"id":703517252,"node_id":"MDU6TGFiZWw3MDM1MTcyNTI=","url":"https://api.github.com/repos/dotnet/corefx/labels/api-suggestion","name":"api-suggestion","color":"1d76db","default":false},{"id":156731357,"node_id":"MDU6TGFiZWwxNTY3MzEzNTc=","url":"https://api.github.com/repos/dotnet/corefx/labels/area-System.Text.RegularExpressions","name":"area-System.Text.RegularExpressions","color":"d4c5f9","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/dotnet/corefx/milestones/5","html_url":"https://github.com/dotnet/corefx/milestone/5","labels_url":"https://api.github.com/repos/dotnet/corefx/milestones/5/labels","id":1328080,"node_id":"MDk6TWlsZXN0b25lMTMyODA4MA==","number":5,"title":"Future","description":"Milestone tracking issues not triaged to a planned release. Work in this milestone may happen, or may not: it is not committed.","creator":{"login":"joshfree","id":1302850,"node_id":"MDQ6VXNlcjEzMDI4NTA=","avatar_url":"https://avatars1.githubusercontent.com/u/1302850?v=4","gravatar_id":"","url":"https://api.github.com/users/joshfree","html_url":"https://github.com/joshfree","followers_url":"https://api.github.com/users/joshfree/followers","following_url":"https://api.github.com/users/joshfree/following{/other_user}","gists_url":"https://api.github.com/users/joshfree/gists{/gist_id}","starred_url":"https://api.github.com/users/joshfree/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshfree/subscriptions","organizations_url":"https://api.github.com/users/joshfree/orgs","repos_url":"https://api.github.com/users/joshfree/repos","events_url":"https://api.github.com/users/joshfree/events{/privacy}","received_events_url":"https://api.github.com/users/joshfree/received_events","type":"User","site_admin":false},"open_issues":1949,"closed_issues":155,"state":"open","created_at":"2015-09-29T00:25:45Z","updated_at":"2018-06-03T13:47:56Z","due_on":null,"closed_at":null},"comments":8,"created_at":"2018-05-23T22:54:45Z","updated_at":"2018-06-04T00:51:43Z","closed_at":null,"author_association":"NONE","body":"# suggestion:\r\nI suggest to add this class to System.Text.RegularExpressions namespace as a helper class for Regex class. It contains 146 static readonly properties that makes it easier to deal with Unicode char categories, which are hard to memorize.\r\n```\r\nnamespace System.Text.RegularExpressions\r\n{\r\n   public static class Escapes\r\n    {\r\n        public static string UppercaseLetter => @\"\\p{Lu}\";\r\n        public static string LowercaseLetter => @\"\\p{Ll}\";\r\n        public static string TitlecaseLetter => @\"\\p{Lt}\";\r\n        public static string ModifierLetter => @\"\\p{Lm}\";\r\n        public static string OtherLetter => @\"\\p{Lo}\";\r\n        public static string letter => @\"\\p{L}\";\r\n        public static string NonspacingMark => @\"\\p{Mn}\";\r\n        public static string SpacingCombiningMark => @\"\\p{Mc}\";\r\n        public static string EnclosingMark => @\"\\p{Me}\";\r\n        public static string Mark => @\"\\p{M}\";\r\n        public static string DecimalDigitNumber => @\"\\p{Nd}\";\r\n        public static string LetterNumber => @\"\\p{Nl}\";\r\n        public static string OtherNumber => @\"\\p{No}\";\r\n        public static string Number => @\"\\p{N}\";\r\n        public static string ConnectorPunctuation => @\"\\p{Pc}\";\r\n        public static string DashPunctuation => @\"\\p{Pd}\";\r\n        public static string OpenPunctuation => @\"\\p{Ps}\";\r\n        public static string ClosePunctuation => @\"\\p{Pe}\";\r\n        public static string InitialquotePunctuation => @\"\\p{Pi}\";\r\n        public static string FinalquotePunctuation => @\"\\p{Pf}\";\r\n        public static string OtherPunctuation => @\"\\p{Po}\";\r\n        public static string Punctuation => @\"\\p{P}\";\r\n        public static string MathSymbol => @\"\\p{Sm}\";\r\n        public static string CurrencySymbol => @\"\\p{Sc}\";\r\n        public static string ModifierSymbol => @\"\\p{Sk}\";\r\n        public static string OtherSymbol => @\"\\p{So}\";\r\n        public static string Symbol => @\"\\p{S}\";\r\n        public static string SpaceSeparator => @\"\\p{Zs}\";\r\n        public static string LineSeparator => @\"\\p{Zl}\";\r\n        public static string ParagraphSeparator => @\"\\p{Zp}\";\r\n        public static string Separator => @\"\\p{Z}\";\r\n        public static string Format => @\"\\p{Cf}\";\r\n        public static string Surrogate => @\"\\p{Cs}\";\r\n        public static string PrivateUse => @\"\\p{Co}\";\r\n        public static string NotAssigned => @\"\\p{Cn}\";\r\n        public static string OtherControl => @\"\\p{Cc}\";\r\n        public static string Control => @\"\\p{C}\";\r\n\r\n        public static string BasicLatin => @\"\\p{IsBasicLatin}\";\r\n        public static string Latin_1Supplement => @\"\\p{IsLatin-1Supplement}\";\r\n        public static string LatinExtended_A => @\"\\p{IsLatinExtended-A}\";\r\n        public static string LatinExtended_B => @\"\\p{IsLatinExtended-B}\";\r\n        public static string IPAExtensions => @\"\\p{IsIPAExtensions}\";\r\n        public static string SpacingModifierLetters => @\"\\p{IsSpacingModifierLetters}\";\r\n        public static string CombiningDiacriticalMarks => @\"\\p{IsCombiningDiacriticalMarks}\";\r\n        public static string Greek => @\"\\p{IsGreek}\";\r\n        public static string GreekandCoptic => @\"\\p{IsGreekandCoptic}\";\r\n        public static string Cyrillic => @\"\\p{IsCyrillic}\";\r\n        public static string CyrillicSupplement => @\"\\p{IsCyrillicSupplement}\";\r\n        public static string Armenian => @\"\\p{IsArmenian}\";\r\n        public static string Hebrew => @\"\\p{IsHebrew}\";\r\n        public static string Arabic => @\"\\p{IsArabic}\";\r\n        public static string Syriac => @\"\\p{IsSyriac}\";\r\n        public static string Thaana => @\"\\p{IsThaana}\";\r\n        public static string Devanagari => @\"\\p{IsDevanagari}\";\r\n        public static string Bengali => @\"\\p{IsBengali}\";\r\n        public static string Gurmukhi => @\"\\p{IsGurmukhi}\";\r\n        public static string Gujarati => @\"\\p{IsGujarati}\";\r\n        public static string Oriya => @\"\\p{IsOriya}\";\r\n        public static string Tamil => @\"\\p{IsTamil}\";\r\n        public static string Telugu => @\"\\p{IsTelugu}\";\r\n        public static string Kannada => @\"\\p{IsKannada}\";\r\n        public static string Malayalam => @\"\\p{IsMalayalam}\";\r\n        public static string Sinhala => @\"\\p{IsSinhala}\";\r\n        public static string Thai => @\"\\p{IsThai}\";\r\n        public static string Lao => @\"\\p{IsLao}\";\r\n        public static string Tibetan => @\"\\p{IsTibetan}\";\r\n        public static string Myanmar => @\"\\p{IsMyanmar}\";\r\n        public static string Georgian => @\"\\p{IsGeorgian}\";\r\n        public static string HangulJamo => @\"\\p{IsHangulJamo}\";\r\n        public static string Ethiopic => @\"\\p{IsEthiopic}\";\r\n        public static string Cherokee => @\"\\p{IsCherokee}\";\r\n        public static string UnifiedCanadianAboriginalSyllabics => @\"\\p{IsUnifiedCanadianAboriginalSyllabics}\";\r\n        public static string Ogham => @\"\\p{IsOgham}\";\r\n        public static string Runic => @\"\\p{IsRunic}\";\r\n        public static string Tagalog => @\"\\p{IsTagalog}\";\r\n        public static string Hanunoo => @\"\\p{IsHanunoo}\";\r\n        public static string Buhid => @\"\\p{IsBuhid}\";\r\n        public static string Tagbanwa => @\"\\p{IsTagbanwa}\";\r\n        public static string Khmer => @\"\\p{IsKhmer}\";\r\n        public static string Mongolian => @\"\\p{IsMongolian}\";\r\n        public static string Limbu => @\"\\p{IsLimbu}\";\r\n        public static string TaiLe => @\"\\p{IsTaiLe}\";\r\n        public static string KhmerSymbols => @\"\\p{IsKhmerSymbols}\";\r\n        public static string PhoneticExtensions => @\"\\p{IsPhoneticExtensions}\";\r\n        public static string LatinExtendedAdditional => @\"\\p{IsLatinExtendedAdditional}\";\r\n        public static string GreekExtended => @\"\\p{IsGreekExtended}\";\r\n        public static string GeneralPunctuation => @\"\\p{IsGeneralPunctuation}\";\r\n        public static string SuperscriptsandSubscripts => @\"\\p{IsSuperscriptsandSubscripts}\";\r\n        public static string CurrencySymbols => @\"\\p{IsCurrencySymbols}\";\r\n        public static string CombiningDiacriticalMarksforSymbols => @\"\\p{IsCombiningDiacriticalMarksforSymbols}\";\r\n        public static string CombiningMarksforSymbols => @\"\\p{IsCombiningMarksforSymbols}\";\r\n        public static string LetterlikeSymbols => @\"\\p{IsLetterlikeSymbols}\";\r\n        public static string NumberForms => @\"\\p{IsNumberForms}\";\r\n        public static string Arrows => @\"\\p{IsArrows}\";\r\n        public static string MathematicalOperators => @\"\\p{IsMathematicalOperators}\";\r\n        public static string MiscellaneousTechnical => @\"\\p{IsMiscellaneousTechnical}\";\r\n        public static string ControlPictures => @\"\\p{IsControlPictures}\";\r\n        public static string OpticalCharacterRecognition => @\"\\p{IsOpticalCharacterRecognition}\";\r\n        public static string EnclosedAlphanumerics => @\"\\p{IsEnclosedAlphanumerics}\";\r\n        public static string BoxDrawing => @\"\\p{IsBoxDrawing}\";\r\n        public static string BlockElements => @\"\\p{IsBlockElements}\";\r\n        public static string GeometricShapes => @\"\\p{IsGeometricShapes}\";\r\n        public static string MiscellaneousSymbols => @\"\\p{IsMiscellaneousSymbols}\";\r\n        public static string Dingbats => @\"\\p{IsDingbats}\";\r\n        public static string MiscellaneousMathematicalSymbols_A => @\"\\p{IsMiscellaneousMathematicalSymbols-A}\";\r\n        public static string SupplementalArrows_A => @\"\\p{IsSupplementalArrows-A}\";\r\n        public static string Braillestrings => @\"\\p{IsBraillestrings}\";\r\n        public static string SupplementalArrows_B => @\"\\p{IsSupplementalArrows-B}\";\r\n        public static string MiscellaneousMathematicalSymbols_B => @\"\\p{IsMiscellaneousMathematicalSymbols-B}\";\r\n        public static string SupplementalMathematicalOperators => @\"\\p{IsSupplementalMathematicalOperators}\";\r\n        public static string MiscellaneousSymbolsandArrows => @\"\\p{IsMiscellaneousSymbolsandArrows}\";\r\n        public static string CJKRadicalsSupplement => @\"\\p{IsCJKRadicalsSupplement}\";\r\n        public static string KangxiRadicals => @\"\\p{IsKangxiRadicals}\";\r\n        public static string IdeographicDescriptionCharacters => @\"\\p{IsIdeographicDescriptionCharacters}\";\r\n        public static string CJKSymbolsandPunctuation => @\"\\p{IsCJKSymbolsandPunctuation}\";\r\n        public static string Hiragana => @\"\\p{IsHiragana}\";\r\n        public static string Katakana => @\"\\p{IsKatakana}\";\r\n        public static string Bopomofo => @\"\\p{IsBopomofo}\";\r\n        public static string HangulCompatibilityJamo => @\"\\p{IsHangulCompatibilityJamo}\";\r\n        public static string Kanbun => @\"\\p{IsKanbun}\";\r\n        public static string BopomofoExtended => @\"\\p{IsBopomofoExtended}\";\r\n        public static string KatakanaPhoneticExtensions => @\"\\p{IsKatakanaPhoneticExtensions}\";\r\n        public static string EnclosedCJKLettersandMonths => @\"\\p{IsEnclosedCJKLettersandMonths}\";\r\n        public static string CJKCompatibility => @\"\\p{IsCJKCompatibility}\";\r\n        public static string CJKUnifiedIdeographsExtensionA => @\"\\p{IsCJKUnifiedIdeographsExtensionA}\";\r\n        public static string YijingHexagramSymbols => @\"\\p{IsYijingHexagramSymbols}\";\r\n        public static string CJKUnifiedIdeographs => @\"\\p{IsCJKUnifiedIdeographs}\";\r\n        public static string YiSyllables => @\"\\p{IsYiSyllables}\";\r\n        public static string YiRadicals => @\"\\p{IsYiRadicals}\";\r\n        public static string HangulSyllables => @\"\\p{IsHangulSyllables}\";\r\n        public static string HighSurrogates => @\"\\p{IsHighSurrogates}\";\r\n        public static string HighPrivateUseSurrogates => @\"\\p{IsHighPrivateUseSurrogates}\";\r\n        public static string LowSurrogates => @\"\\p{IsLowSurrogates}\";\r\n        public static string PrivateUseArea => @\"\\p{IsPrivateUseArea}\";\r\n        public static string CJKCompatibilityIdeographs => @\"\\p{IsCJKCompatibilityIdeographs}\";\r\n        public static string AlphabeticPresentationForms => @\"\\p{IsAlphabeticPresentationForms}\";\r\n        public static string ArabicPresentationForms_A => @\"\\p{IsArabicPresentationForms-A}\";\r\n        public static string VariationSelectors => @\"\\p{IsVariationSelectors}\";\r\n        public static string CombiningHalfMarks => @\"\\p{IsCombiningHalfMarks}\";\r\n        public static string CJKCompatibilityForms => @\"\\p{IsCJKCompatibilityForms}\";\r\n        public static string SmallFormVariants => @\"\\p{IsSmallFormVariants}\";\r\n        public static string ArabicPresentationForms_B => @\"\\p{IsArabicPresentationForms-B}\";\r\n        public static string HalfwidthandFullwidthForms => @\"\\p{IsHalfwidthandFullwidthForms}\";\r\n        public static string Specials => @\"\\p{IsSpecials}\";\r\n\r\n\r\n            public static string NotUppercaseLetter => @\"\\P{Lu}\";\r\n            public static string NotLowercaseLetter => @\"\\P{Ll}\";\r\n            public static string NotTitlecaseLetter => @\"\\P{Lt}\";\r\n            public static string NotModifierLetter => @\"\\P{Lm}\";\r\n            public static string NotOtherLetter => @\"\\P{Lo}\";\r\n            public static string NotLetter => @\"\\P{L}\";\r\n            public static string NotNonspacingMark => @\"\\P{Mn}\";\r\n            public static string NotSpacingCombiningMark => @\"\\P{Mc}\";\r\n            public static string NotEnclosingMark => @\"\\P{Me}\";\r\n            public static string NotMark => @\"\\P{M}\";\r\n            public static string NotDecimalDigitNumber => @\"\\P{Nd}\";\r\n            public static string NotLetterNumber => @\"\\P{Nl}\";\r\n            public static string NotOtherNumber => @\"\\P{No}\";\r\n            public static string NotNumber => @\"\\P{N}\";\r\n            public static string NotConnectorPunctuation => @\"\\P{Pc}\";\r\n            public static string NotDashPunctuation => @\"\\P{Pd}\";\r\n            public static string NotOpenPunctuation => @\"\\P{Ps}\";\r\n            public static string NotClosePunctuation => @\"\\P{Pe}\";\r\n            public static string NotInitialquotePunctuation => @\"\\P{Pi}\";\r\n            public static string NotFinalquotePunctuation => @\"\\P{Pf}\";\r\n            public static string NotOtherPunctuation => @\"\\P{Po}\";\r\n            public static string NotPunctuation => @\"\\P{P}\";\r\n            public static string NotMathSymbol => @\"\\P{Sm}\";\r\n            public static string NotCurrencySymbol => @\"\\P{Sc}\";\r\n            public static string NotModifierSymbol => @\"\\P{Sk}\";\r\n            public static string NotOtherSymbol => @\"\\P{So}\";\r\n            public static string NotSymbol => @\"\\P{S}\";\r\n            public static string NotSpaceSeparator => @\"\\P{Zs}\";\r\n            public static string NotLineSeparator => @\"\\P{Zl}\";\r\n            public static string NotParagraphSeparator => @\"\\P{Zp}\";\r\n            public static string NotSeparator => @\"\\P{Z}\";\r\n            public static string NotFormat => @\"\\P{Cf}\";\r\n            public static string NotSurrogate => @\"\\P{Cs}\";\r\n            public static string NotPrivateUse => @\"\\P{Co}\";\r\n            public static string NotNotAssigned => @\"\\P{Cn}\";\r\n            public static string NotOtherControl => @\"\\P{Cc}\";\r\n            public static string NotControl => @\"\\P{C}\";\r\n\r\n            public static string NotBasicLatin => @\"\\P{IsBasicLatin}\";\r\n            public static string NotLatin_1Supplement => @\"\\P{IsLatin-1Supplement}\";\r\n            public static string NotLatinExtended_A => @\"\\P{IsLatinExtended-A}\";\r\n            public static string NotLatinExtended_B => @\"\\P{IsLatinExtended-B}\";\r\n            public static string NotIPAExtensions => @\"\\P{IsIPAExtensions}\";\r\n            public static string NotSpacingModifierLetters => @\"\\P{IsSpacingModifierLetters}\";\r\n            public static string NotCombiningDiacriticalMarks => @\"\\P{IsCombiningDiacriticalMarks}\";\r\n            public static string NotGreek => @\"\\P{IsGreek}\";\r\n            public static string NotGreekandCoptic => @\"\\P{IsGreekandCoptic}\";\r\n            public static string NotCyrillic => @\"\\P{IsCyrillic}\";\r\n            public static string NotCyrillicSupplement => @\"\\P{IsCyrillicSupplement}\";\r\n            public static string NotArmenian => @\"\\P{IsArmenian}\";\r\n            public static string NotHebrew => @\"\\P{IsHebrew}\";\r\n            public static string NotArabic => @\"\\P{IsArabic}\";\r\n            public static string NotSyriac => @\"\\P{IsSyriac}\";\r\n            public static string NotThaana => @\"\\P{IsThaana}\";\r\n            public static string NotDevanagari => @\"\\P{IsDevanagari}\";\r\n            public static string NotBengali => @\"\\P{IsBengali}\";\r\n            public static string NotGurmukhi => @\"\\P{IsGurmukhi}\";\r\n            public static string NotGujarati => @\"\\P{IsGujarati}\";\r\n            public static string NotOriya => @\"\\P{IsOriya}\";\r\n            public static string NotTamil => @\"\\P{IsTamil}\";\r\n            public static string NotTelugu => @\"\\P{IsTelugu}\";\r\n            public static string NotKannada => @\"\\P{IsKannada}\";\r\n            public static string NotMalayalam => @\"\\P{IsMalayalam}\";\r\n            public static string NotSinhala => @\"\\P{IsSinhala}\";\r\n            public static string NotThai => @\"\\P{IsThai}\";\r\n            public static string NotLao => @\"\\P{IsLao}\";\r\n            public static string NotTibetan => @\"\\P{IsTibetan}\";\r\n            public static string NotMyanmar => @\"\\P{IsMyanmar}\";\r\n            public static string NotGeorgian => @\"\\P{IsGeorgian}\";\r\n            public static string NotHangulJamo => @\"\\P{IsHangulJamo}\";\r\n            public static string NotEthiopic => @\"\\P{IsEthiopic}\";\r\n            public static string NotCherokee => @\"\\P{IsCherokee}\";\r\n            public static string NotUnifiedCanadianAboriginalSyllabics => @\"\\P{IsUnifiedCanadianAboriginalSyllabics}\";\r\n            public static string NotOgham => @\"\\P{IsOgham}\";\r\n            public static string NotRunic => @\"\\P{IsRunic}\";\r\n            public static string NotTagalog => @\"\\P{IsTagalog}\";\r\n            public static string NotHanunoo => @\"\\P{IsHanunoo}\";\r\n            public static string NotBuhid => @\"\\P{IsBuhid}\";\r\n            public static string NotTagbanwa => @\"\\P{IsTagbanwa}\";\r\n            public static string NotKhmer => @\"\\P{IsKhmer}\";\r\n            public static string NotMongolian => @\"\\P{IsMongolian}\";\r\n            public static string NotLimbu => @\"\\P{IsLimbu}\";\r\n            public static string NotTaiLe => @\"\\P{IsTaiLe}\";\r\n            public static string NotKhmerSymbols => @\"\\P{IsKhmerSymbols}\";\r\n            public static string NotPhoneticExtensions => @\"\\P{IsPhoneticExtensions}\";\r\n            public static string NotLatinExtendedAdditional => @\"\\P{IsLatinExtendedAdditional}\";\r\n            public static string NotGreekExtended => @\"\\P{IsGreekExtended}\";\r\n            public static string NotGeneralPunctuation => @\"\\P{IsGeneralPunctuation}\";\r\n            public static string NotSuperscriptsandSubscripts => @\"\\P{IsSuperscriptsandSubscripts}\";\r\n            public static string NotCurrencySymbols => @\"\\P{IsCurrencySymbols}\";\r\n            public static string NotCombiningDiacriticalMarksforSymbols => @\"\\P{IsCombiningDiacriticalMarksforSymbols}\";\r\n            public static string NotCombiningMarksforSymbols => @\"\\P{IsCombiningMarksforSymbols}\";\r\n            public static string NotLetterlikeSymbols => @\"\\P{IsLetterlikeSymbols}\";\r\n            public static string NotNumberForms => @\"\\P{IsNumberForms}\";\r\n            public static string NotArrows => @\"\\P{IsArrows}\";\r\n            public static string NotMathematicalOperators => @\"\\P{IsMathematicalOperators}\";\r\n            public static string NotMiscellaneousTechnical => @\"\\P{IsMiscellaneousTechnical}\";\r\n            public static string NotControlPictures => @\"\\P{IsControlPictures}\";\r\n            public static string NotOpticalCharacterRecognition => @\"\\P{IsOpticalCharacterRecognition}\";\r\n            public static string NotEnclosedAlphanumerics => @\"\\P{IsEnclosedAlphanumerics}\";\r\n            public static string NotBoxDrawing => @\"\\P{IsBoxDrawing}\";\r\n            public static string NotBlockElements => @\"\\P{IsBlockElements}\";\r\n            public static string NotGeometricShapes => @\"\\P{IsGeometricShapes}\";\r\n            public static string NotMiscellaneousSymbols => @\"\\P{IsMiscellaneousSymbols}\";\r\n            public static string NotDingbats => @\"\\P{IsDingbats}\";\r\n            public static string NotMiscellaneousMathematicalSymbols_A => @\"\\P{IsMiscellaneousMathematicalSymbols-A}\";\r\n            public static string NotSupplementalArrows_A => @\"\\P{IsSupplementalArrows-A}\";\r\n            public static string NotBraillePatterns => @\"\\P{IsBraillePatterns}\";\r\n            public static string NotSupplementalArrows_B => @\"\\P{IsSupplementalArrows-B}\";\r\n            public static string NotMiscellaneousMathematicalSymbols_B => @\"\\P{IsMiscellaneousMathematicalSymbols-B}\";\r\n            public static string NotSupplementalMathematicalOperators => @\"\\P{IsSupplementalMathematicalOperators}\";\r\n            public static string NotMiscellaneousSymbolsandArrows => @\"\\P{IsMiscellaneousSymbolsandArrows}\";\r\n            public static string NotCJKRadicalsSupplement => @\"\\P{IsCJKRadicalsSupplement}\";\r\n            public static string NotKangxiRadicals => @\"\\P{IsKangxiRadicals}\";\r\n            public static string NotIdeographicDescriptionCharacters => @\"\\P{IsIdeographicDescriptionCharacters}\";\r\n            public static string NotCJKSymbolsandPunctuation => @\"\\P{IsCJKSymbolsandPunctuation}\";\r\n            public static string NotHiragana => @\"\\P{IsHiragana}\";\r\n            public static string NotKatakana => @\"\\P{IsKatakana}\";\r\n            public static string NotBopomofo => @\"\\P{IsBopomofo}\";\r\n            public static string NotHangulCompatibilityJamo => @\"\\P{IsHangulCompatibilityJamo}\";\r\n            public static string NotKanbun => @\"\\P{IsKanbun}\";\r\n            public static string NotBopomofoExtended => @\"\\P{IsBopomofoExtended}\";\r\n            public static string NotKatakanaPhoneticExtensions => @\"\\P{IsKatakanaPhoneticExtensions}\";\r\n            public static string NotEnclosedCJKLettersandMonths => @\"\\P{IsEnclosedCJKLettersandMonths}\";\r\n            public static string NotCJKCompatibility => @\"\\P{IsCJKCompatibility}\";\r\n            public static string NotCJKUnifiedIdeographsExtensionA => @\"\\P{IsCJKUnifiedIdeographsExtensionA}\";\r\n            public static string NotYijingHexagramSymbols => @\"\\P{IsYijingHexagramSymbols}\";\r\n            public static string NotCJKUnifiedIdeographs => @\"\\P{IsCJKUnifiedIdeographs}\";\r\n            public static string NotYiSyllables => @\"\\P{IsYiSyllables}\";\r\n            public static string NotYiRadicals => @\"\\P{IsYiRadicals}\";\r\n            public static string NotHangulSyllables => @\"\\P{IsHangulSyllables}\";\r\n            public static string NotHighSurrogates => @\"\\P{IsHighSurrogates}\";\r\n            public static string NotHighPrivateUseSurrogates => @\"\\P{IsHighPrivateUseSurrogates}\";\r\n            public static string NotLowSurrogates => @\"\\P{IsLowSurrogates}\";\r\n            public static string NotPrivateUseArea => @\"\\P{IsPrivateUseArea}\";\r\n            public static string NotCJKCompatibilityIdeographs => @\"\\P{IsCJKCompatibilityIdeographs}\";\r\n            public static string NotAlphabeticPresentationForms => @\"\\P{IsAlphabeticPresentationForms}\";\r\n            public static string NotArabicPresentationForms_A => @\"\\P{IsArabicPresentationForms-A}\";\r\n            public static string NotVariationSelectors => @\"\\P{IsVariationSelectors}\";\r\n            public static string NotCombiningHalfMarks => @\"\\P{IsCombiningHalfMarks}\";\r\n            public static string NotCJKCompatibilityForms => @\"\\P{IsCJKCompatibilityForms}\";\r\n            public static string NotSmallFormVariants => @\"\\P{IsSmallFormVariants}\";\r\n            public static string NotArabicPresentationForms_B => @\"\\P{IsArabicPresentationForms-B}\";\r\n            public static string NotHalfwidthandFullwidthForms => @\"\\P{IsHalfwidthandFullwidthForms}\";\r\n            public static string NotSpecials => @\"\\P{IsSpecials}\";\r\n    }\r\n}\r\n\r\n```\r\nThis class will be more useful if it contains XML comments to give some info about each category (no such info in docs, so I refer to wikipeadia). I have no time to add all these comments myself, but it will be easier if its a team work.\r\n\r\nAnother method can be added to this class to get the categories in a different way:\r\n```\r\n        public static Pattern UnicodeCategory(Category category)\r\n        {\r\n            return @\"\\p{\" + UniCategories[(int)category] + \"}\";\r\n        }\r\n\r\n        private static string[] UniCategories = {\r\n                                                \"Lu\", \"Ll\", \"Lt\", \"Lm\", \"Lo\", \"L\",\r\n                                                \"Mn\", \"Mc\", \"Me\", \"M\",\r\n                                                \"Nd\", \"Nl\", \"No\", \"N\",\r\n                                                \"Pc\", \"Pd\", \"Ps\", \"Pe\", \"Pi\", \"Pf\", \"Po\", \"P\",\r\n                                                \"Sm\", \"Sc\", \"Sk\", \"So\", \"S\",\r\n                                                \"Zs\", \"Zl\", \"Zp\", \"Z\",\r\n                                                 \"Cf\", \"Cs\", \"Co\", \"Cn\", \"Cc\", \"C\",\r\n                                                 \"IsBasicLatin\",\r\n                                                 \"IsLatin-1Supplement\",\r\n                                                 \"IsLatinExtended-A\",\r\n                                                 \"IsLatinExtended-B\",\r\n                                                 \"IsIPAExtensions\",\r\n                                                 \"IsSpacingModifierLetters\",\r\n                                                 \"IsCombiningDiacriticalMarks\",\r\n                                                 \"IsGreek\",\r\n                                                 \"IsGreekandCoptic\",\r\n                                                 \"IsCyrillic\",\r\n                                                 \"IsCyrillicSupplement\",\r\n                                                 \"IsArmenian\",\r\n                                                 \"IsHebrew\",\r\n                                                 \"IsArabic\",\r\n                                                 \"IsSyriac\",\r\n                                                 \"IsThaana\",\r\n                                                 \"IsDevanagari\",\r\n                                                 \"IsBengali\",\r\n                                                 \"IsGurmukhi\",\r\n                                                 \"IsGujarati\",\r\n                                                 \"IsOriya\",\r\n                                                 \"IsTamil\",\r\n                                                 \"IsTelugu\",\r\n                                                 \"IsKannada\",\r\n                                                 \"IsMalayalam\",\r\n                                                 \"IsSinhala\",\r\n                                                 \"IsThai\",\r\n                                                 \"IsLao\",\r\n                                                 \"IsTibetan\",\r\n                                                 \"IsMyanmar\",\r\n                                                 \"IsGeorgian\",\r\n                                                 \"IsHangulJamo\",\r\n                                                 \"IsEthiopic\",\r\n                                                 \"IsCherokee\",\r\n                                                 \"IsUnifiedCanadianAboriginalSyllabics\",\r\n                                                 \"IsOgham\",\r\n                                                 \"IsRunic\",\r\n                                                 \"IsTagalog\",\r\n                                                 \"IsHanunoo\",\r\n                                                 \"IsBuhid\",\r\n                                                 \"IsTagbanwa\",\r\n                                                 \"IsKhmer\",\r\n                                                 \"IsMongolian\",\r\n                                                 \"IsLimbu\",\r\n                                                 \"IsTaiLe\",\r\n                                                 \"IsKhmerSymbols\",\r\n                                                 \"IsPhoneticExtensions\",\r\n                                                 \"IsLatinExtendedAdditional\",\r\n                                                 \"IsGreekExtended\",\r\n                                                 \"IsGeneralPunctuation\",\r\n                                                 \"IsSuperscriptsandSubscripts\",\r\n                                                 \"IsCurrencySymbols\",\r\n                                                 \"IsCombiningDiacriticalMarksforSymbols\",\r\n                                                 \"IsCombiningMarksforSymbols\",\r\n                                                 \"IsLetterlikeSymbols\",\r\n                                                 \"IsNumberForms\",\r\n                                                 \"IsArrows\",\r\n                                                 \"IsMathematicalOperators\",\r\n                                                 \"IsMiscellaneousTechnical\",\r\n                                                 \"IsControlPictures\",\r\n                                                 \"IsOpticalCharacterRecognition\",\r\n                                                 \"IsEnclosedAlphanumerics\",\r\n                                                 \"IsBoxDrawing\",\r\n                                                 \"IsBlockElements\",\r\n                                                 \"IsGeometricShapes\",\r\n                                                 \"IsMiscellaneousSymbols\",\r\n                                                 \"IsDingbats\",\r\n                                                 \"IsMiscellaneousMathematicalSymbols-A\",\r\n                                                 \"IsSupplementalArrows-A\",\r\n                                                 \"IsBraillePatterns\",\r\n                                                 \"IsSupplementalArrows-B\",\r\n                                                 \"IsMiscellaneousMathematicalSymbols-B\",\r\n                                                 \"IsSupplementalMathematicalOperators\",\r\n                                                 \"IsMiscellaneousSymbolsandArrows\",\r\n                                                 \"IsCJKRadicalsSupplement\",\r\n                                                 \"IsKangxiRadicals\",\r\n                                                 \"IsIdeographicDescriptionCharacters\",\r\n                                                 \"IsCJKSymbolsandPunctuation\",\r\n                                                 \"IsHiragana\",\r\n                                                 \"IsKatakana\",\r\n                                                 \"IsBopomofo\",\r\n                                                 \"IsHangulCompatibilityJamo\",\r\n                                                 \"IsKanbun\",\r\n                                                 \"IsBopomofoExtended\",\r\n                                                 \"IsKatakanaPhoneticExtensions\",\r\n                                                 \"IsEnclosedCJKLettersandMonths\",\r\n                                                 \"IsCJKCompatibility\",\r\n                                                 \"IsCJKUnifiedIdeographsExtensionA\",\r\n                                                 \"IsYijingHexagramSymbols\",\r\n                                                 \"IsCJKUnifiedIdeographs\",\r\n                                                 \"IsYiSyllables\",\r\n                                                 \"IsYiRadicals\",\r\n                                                 \"IsHangulSyllables\",\r\n                                                 \"IsHighSurrogates\",\r\n                                                 \"IsHighPrivateUseSurrogates\",\r\n                                                 \"IsLowSurrogates\",\r\n                                                 \"IsPrivateUse\",\r\n                                                 \"IsPrivateUseArea\",\r\n                                                 \"IsCJKCompatibilityIdeographs\",\r\n                                                 \"IsAlphabeticPresentationForms\",\r\n                                                 \"IsArabicPresentationForms-A\",\r\n                                                 \"IsVariationSelectors\",\r\n                                                 \"IsCombiningHalfMarks\",\r\n                                                 \"IsCJKCompatibilityForms\",\r\n                                                 \"IsSmallFormVariants\",\r\n                                                 \"IsArabicPresentationForms-B\",\r\n                                                 \"IsHalfwidthandFullwidthForms\",\r\n                                                 \"IsSpecials\"\r\n            };\r\n```\r\n\r\nThese methodes also will be helpfull:\r\n\r\n```\r\n       public static Pattern AsciiChar(byte asciiCode)\r\n        {\r\n            return @\"\\x\" + Convert.ToString(asciiCode, 16).PadLeft(2, '0');            \r\n        }\r\n\r\n        public static Pattern AsciiChar(char c)\r\n        {\r\n            if ((int)c > 255)\r\n                throw new ArgumentException(\"this is not an ASCII char\");\r\n\r\n            return @\"\\x\" + Convert.ToString(c, 16).PadLeft(2, '0');\r\n        }\r\n\r\n        public static Pattern UnicodeChar(short uniCode)\r\n        {\r\n            return x = @\"\\u\" + Convert.ToString(uniCode, 16).PadLeft(4, '0');\r\n        }\r\n\r\n        public static Pattern UnicodeChar(char c)\r\n        {\r\n            return @\"\\u\" + Convert.ToString(c, 16).PadLeft(4, '0');\r\n        }\r\n\r\n\r\n```\r\nand maybe these properties also:\r\n\r\n```\r\n        public static string LineFeed = @\"\\n\";\r\n        public static string CarriageReturn = @\"\\r\";\r\n        public static string NewLine => @\"(\\n|(\\r\\n))\";\r\n        public static string Digit = @\"\\d\";\r\n        public static string NotADigit = @\"\\D\";\r\n        public static string AnyChar => \".\";\r\n        public static string WordChar = @\"\\w\";\r\n        public static string Word => @\"\\w+\";\r\n        public static string NotAWordChar = @\"\\W\";\r\n        public static string Bell = @\"\\a\";\r\n        public static string Alarm = @\"\\a\";\r\n        public static string Backspace = @\"\\u0008\";\r\n        public static string Tab = @\"\\t\";\r\n        public static string VerticalTab = @\"\\v\";\r\n        public static string FormFeed = \"@\\f\";\r\n        public static string WhiteSpace = @\"\\s\";\r\n        public static string NotAWhiteSpace = @\"\\S\";\r\n        public static string Escape = @\"\\e\";\r\n        public static string StartOfLine => \"^\";\r\n        public static string EndOfLine => \"$\";\r\n        public static string StartOfText => @\"\\A\";\r\n        public static string EndOfText => @\"\\z\";\r\n        public static string EndOfLastNonEmptyLine => @\"\\Z\";\r\n        public static string WordEdge => @\"\\b\";\r\n\r\n```\r\n\r\n# usage:\r\n`var rgx = new Regex($\"[{Escapes.Arabic + Escapes.BasicLatin}]\");`\r\nis equal to:\r\n`var rgx = new Regex(\"[\\p{IsArabic}\\p{IsBasicLatin}]\");`\r\n\r\n# Benefits:\r\nIn the previos example, using Escapes members is easier to write and no need to memorize any names thanks for intellisense. Also, there is no chance to misspell the Escapes.BasicLatin which can happen when writing \\p.{IsBasicLatin} manualy."},"comment":{"url":"https://api.github.com/repos/dotnet/corefx/issues/comments/394207618","html_url":"https://github.com/dotnet/corefx/issues/29881#issuecomment-394207618","issue_url":"https://api.github.com/repos/dotnet/corefx/issues/29881","id":394207618,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NDIwNzYxOA==","user":{"login":"MohammadHamdyGhanem","id":29876310,"node_id":"MDQ6VXNlcjI5ODc2MzEw","avatar_url":"https://avatars0.githubusercontent.com/u/29876310?v=4","gravatar_id":"","url":"https://api.github.com/users/MohammadHamdyGhanem","html_url":"https://github.com/MohammadHamdyGhanem","followers_url":"https://api.github.com/users/MohammadHamdyGhanem/followers","following_url":"https://api.github.com/users/MohammadHamdyGhanem/following{/other_user}","gists_url":"https://api.github.com/users/MohammadHamdyGhanem/gists{/gist_id}","starred_url":"https://api.github.com/users/MohammadHamdyGhanem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MohammadHamdyGhanem/subscriptions","organizations_url":"https://api.github.com/users/MohammadHamdyGhanem/orgs","repos_url":"https://api.github.com/users/MohammadHamdyGhanem/repos","events_url":"https://api.github.com/users/MohammadHamdyGhanem/events{/privacy}","received_events_url":"https://api.github.com/users/MohammadHamdyGhanem/received_events","type":"User","site_admin":false},"created_at":"2018-06-04T00:51:42Z","updated_at":"2018-06-04T00:51:42Z","author_association":"NONE","body":"@ViktorHofer @radical \r\nHere is Verex (my verbal regex builder):\r\nhttps://github.com/MohammadHamdyGhanem/Verex\r\nThanks"}}
{"actor":{"display_login":"MohammadHamdyGhanem"}}