⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 perlunicode.1

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 1
📖 第 1 页 / 共 5 页
字号:
of blocks is more of an artificial grouping based on groups of 256Unicode characters. For example, the \f(CW\*(C`Latin\*(C'\fR script contains lettersfrom many blocks but does not contain all the characters from thoseblocks. It does not, for example, contain digits, because digits areshared across many scripts. Digits and similar groups, likepunctuation, are in a category called \f(CW\*(C`Common\*(C'\fR..SpFor more about scripts, see the UAX#24 \*(L"Script Names\*(R":.Sp.Vb 1\&   http://www.unicode.org/reports/tr24/.Ve.SpFor more about blocks, see:.Sp.Vb 1\&   http://www.unicode.org/Public/UNIDATA/Blocks.txt.Ve.SpBlock names are given with the \f(CW\*(C`In\*(C'\fR prefix. For example, theKatakana block is referenced via \f(CW\*(C`\ep{InKatakana}\*(C'\fR.  The \f(CW\*(C`In\*(C'\fRprefix may be omitted if there is no naming conflict with a scriptor any other property, but it is recommended that \f(CW\*(C`In\*(C'\fR always be usedfor block tests to avoid confusion..SpThese block names are supported:.Sp.Vb 10\&    InAegeanNumbers\&    InAlphabeticPresentationForms\&    InAncientGreekMusicalNotation\&    InAncientGreekNumbers\&    InArabic\&    InArabicPresentationFormsA\&    InArabicPresentationFormsB\&    InArabicSupplement\&    InArmenian\&    InArrows\&    InBalinese\&    InBasicLatin\&    InBengali\&    InBlockElements\&    InBopomofo\&    InBopomofoExtended\&    InBoxDrawing\&    InBraillePatterns\&    InBuginese\&    InBuhid\&    InByzantineMusicalSymbols\&    InCJKCompatibility\&    InCJKCompatibilityForms\&    InCJKCompatibilityIdeographs\&    InCJKCompatibilityIdeographsSupplement\&    InCJKRadicalsSupplement\&    InCJKStrokes\&    InCJKSymbolsAndPunctuation\&    InCJKUnifiedIdeographs\&    InCJKUnifiedIdeographsExtensionA\&    InCJKUnifiedIdeographsExtensionB\&    InCherokee\&    InCombiningDiacriticalMarks\&    InCombiningDiacriticalMarksSupplement\&    InCombiningDiacriticalMarksforSymbols\&    InCombiningHalfMarks\&    InControlPictures\&    InCoptic\&    InCountingRodNumerals\&    InCuneiform\&    InCuneiformNumbersAndPunctuation\&    InCurrencySymbols\&    InCypriotSyllabary\&    InCyrillic\&    InCyrillicSupplement\&    InDeseret\&    InDevanagari\&    InDingbats\&    InEnclosedAlphanumerics\&    InEnclosedCJKLettersAndMonths\&    InEthiopic\&    InEthiopicExtended\&    InEthiopicSupplement\&    InGeneralPunctuation\&    InGeometricShapes\&    InGeorgian\&    InGeorgianSupplement\&    InGlagolitic\&    InGothic\&    InGreekExtended\&    InGreekAndCoptic\&    InGujarati\&    InGurmukhi\&    InHalfwidthAndFullwidthForms\&    InHangulCompatibilityJamo\&    InHangulJamo\&    InHangulSyllables\&    InHanunoo\&    InHebrew\&    InHighPrivateUseSurrogates\&    InHighSurrogates\&    InHiragana\&    InIPAExtensions\&    InIdeographicDescriptionCharacters\&    InKanbun\&    InKangxiRadicals\&    InKannada\&    InKatakana\&    InKatakanaPhoneticExtensions\&    InKharoshthi\&    InKhmer\&    InKhmerSymbols\&    InLao\&    InLatin1Supplement\&    InLatinExtendedA\&    InLatinExtendedAdditional\&    InLatinExtendedB\&    InLatinExtendedC\&    InLatinExtendedD\&    InLetterlikeSymbols\&    InLimbu\&    InLinearBIdeograms\&    InLinearBSyllabary\&    InLowSurrogates\&    InMalayalam\&    InMathematicalAlphanumericSymbols\&    InMathematicalOperators\&    InMiscellaneousMathematicalSymbolsA\&    InMiscellaneousMathematicalSymbolsB\&    InMiscellaneousSymbols\&    InMiscellaneousSymbolsAndArrows\&    InMiscellaneousTechnical\&    InModifierToneLetters\&    InMongolian\&    InMusicalSymbols\&    InMyanmar\&    InNKo\&    InNewTaiLue\&    InNumberForms\&    InOgham\&    InOldItalic\&    InOldPersian\&    InOpticalCharacterRecognition\&    InOriya\&    InOsmanya\&    InPhagspa\&    InPhoenician\&    InPhoneticExtensions\&    InPhoneticExtensionsSupplement\&    InPrivateUseArea\&    InRunic\&    InShavian\&    InSinhala\&    InSmallFormVariants\&    InSpacingModifierLetters\&    InSpecials\&    InSuperscriptsAndSubscripts\&    InSupplementalArrowsA\&    InSupplementalArrowsB\&    InSupplementalMathematicalOperators\&    InSupplementalPunctuation\&    InSupplementaryPrivateUseAreaA\&    InSupplementaryPrivateUseAreaB\&    InSylotiNagri\&    InSyriac\&    InTagalog\&    InTagbanwa\&    InTags\&    InTaiLe\&    InTaiXuanJingSymbols\&    InTamil\&    InTelugu\&    InThaana\&    InThai\&    InTibetan\&    InTifinagh\&    InUgaritic\&    InUnifiedCanadianAboriginalSyllabics\&    InVariationSelectors\&    InVariationSelectorsSupplement\&    InVerticalForms\&    InYiRadicals\&    InYiSyllables\&    InYijingHexagramSymbols.Ve.Sh "User-Defined Character Properties".IX Subsection "User-Defined Character Properties"You can define your own character properties by defining subroutineswhose names begin with \*(L"In\*(R" or \*(L"Is\*(R".  The subroutines can be defined inany package.  The user-defined properties can be used in the regularexpression \f(CW\*(C`\ep\*(C'\fR and \f(CW\*(C`\eP\*(C'\fR constructs; if you are using a user-definedproperty from a package other than the one you are in, you must specifyits package in the \f(CW\*(C`\ep\*(C'\fR or \f(CW\*(C`\eP\*(C'\fR construct..PP.Vb 3\&    # assuming property IsForeign defined in Lang::\&    package main;  # property package name required\&    if ($txt =~ /\ep{Lang::IsForeign}+/) { ... }\&\&    package Lang;  # property package name not required\&    if ($txt =~ /\ep{IsForeign}+/) { ... }.Ve.PPNote that the effect is compile-time and immutable once defined..PPThe subroutines must return a specially-formatted string, with oneor more newline-separated lines.  Each line must be one of the following:.IP "\(bu" 4A single hexadecimal number denoting a Unicode code point to include..IP "\(bu" 4Two hexadecimal numbers separated by horizontal whitespace (space ortabular characters) denoting a range of Unicode code points to include..IP "\(bu" 4Something to include, prefixed by \*(L"+\*(R": a built-in characterproperty (prefixed by \*(L"utf8::\*(R") or a user-defined character property,to represent all the characters in that property; two hexadecimal codepoints for a range; or a single hexadecimal code point..IP "\(bu" 4Something to exclude, prefixed by \*(L"\-\*(R": an existing characterproperty (prefixed by \*(L"utf8::\*(R") or a user-defined character property,to represent all the characters in that property; two hexadecimal codepoints for a range; or a single hexadecimal code point..IP "\(bu" 4Something to negate, prefixed \*(L"!\*(R": an existing characterproperty (prefixed by \*(L"utf8::\*(R") or a user-defined character property,to represent all the characters in that property; two hexadecimal codepoints for a range; or a single hexadecimal code point..IP "\(bu" 4Something to intersect with, prefixed by \*(L"&\*(R": an existing characterproperty (prefixed by \*(L"utf8::\*(R") or a user-defined character property,for all the characters except the characters in the property; twohexadecimal code points for a range; or a single hexadecimal code point..PPFor example, to define a property that covers both the Japanesesyllabaries (hiragana and katakana), you can define.PP.Vb 6\&    sub InKana {\&        return <<END;\&    3040\et309F\&    30A0\et30FF\&    END\&    }.Ve.PPImagine that the here-doc end marker is at the beginning of the line.Now you can use \f(CW\*(C`\ep{InKana}\*(C'\fR and \f(CW\*(C`\eP{InKana}\*(C'\fR..PPYou could also have used the existing block property names:.PP.Vb 6\&    sub InKana {\&        return <<\*(AqEND\*(Aq;\&    +utf8::InHiragana\&    +utf8::InKatakana\&    END\&    }.Ve.PPSuppose you wanted to match only the allocated characters,not the raw block ranges: in other words, you want to removethe non-characters:.PP.Vb 7\&    sub InKana {\&        return <<\*(AqEND\*(Aq;\&    +utf8::InHiragana\&    +utf8::InKatakana\&    \-utf8::IsCn\&    END\&    }.Ve.PPThe negation is useful for defining (surprise!) negated classes..PP.Vb 7\&    sub InNotKana {\&        return <<\*(AqEND\*(Aq;\&    !utf8::InHiragana\&    \-utf8::InKatakana\&    +utf8::IsCn\&    END\&    }.Ve.PPIntersection is useful for getting the common characters matched bytwo (or more) classes..PP.Vb 6\&    sub InFooAndBar {\&        return <<\*(AqEND\*(Aq;\&    +main::Foo\&    &main::Bar\&    END\&    }.Ve.PPIt's important to remember not to use \*(L"&\*(R" for the first set \*(-- thatwould be intersecting with nothing (resulting in an empty set)..Sh "User-Defined Case Mappings".IX Subsection "User-Defined Case Mappings"You can also define your own mappings to be used in the \fIlc()\fR,\&\fIlcfirst()\fR, \fIuc()\fR, and \fIucfirst()\fR (or their string-inlined versions).The principle is similar to that of user-defined characterproperties: to define subroutines in the \f(CW\*(C`main\*(C'\fR packagewith names like \f(CW\*(C`ToLower\*(C'\fR (for \fIlc()\fR and \fIlcfirst()\fR), \f(CW\*(C`ToTitle\*(C'\fR (forthe first character in \fIucfirst()\fR), and \f(CW\*(C`ToUpper\*(C'\fR (for \fIuc()\fR, and therest of the characters in \fIucfirst()\fR)..PPThe string returned by the subroutines needs now to be threehexadecimal numbers separated by tabulators: start of the sourcerange, end of the source range, and start of the destination range.For example:.PP.Vb 5\&    sub ToUpper {\&        return <<END;\&    0061\et0063\et0041\&    END\&    }.Ve.PPdefines an \fIuc()\fR mapping that causes only the characters \*(L"a\*(R", \*(L"b\*(R", and

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -