精华内容
下载资源
问答
  • 正则匹配中文数字

    万次阅读 2018-03-30 15:51:38
    运营导入小说时遇到小麻烦,想要在章节目录前面加一些符号,word等工具搜半天没搜到,就想着用正则匹配试一下, 于是用notepad++试了一下,正则匹配中文数字章节。 表达式为:(第[\u4e00-\u9fa5\u767e\u5343\u96...

    正则匹配中文数字

    运营导入小说时遇到小麻烦,想要在章节目录前面加一些符号,word等工具搜半天没搜到,就想着用正则匹配试一下,
    于是用notepad++试了一下,正则匹配中文数字章节。

    • 表达式为:(第[\u4e00-\u9fa5\u767e\u5343\u96f6]{1,10}章)
    • 追加的内容\1

    笔记

    • 正则匹配中文个位数,\u4e00-\u9fa5
    • 百千零u767e\u5343\u96f6
    • 正则表达式中的小括号”()”。是代表分组的意思。 如果再其后面出现\1则是代表与第一个小括号中要匹配的内容相同。
    • 注意:\1必须与小括号配合使用

    整体实现效果就是在第几章前边加上了一些你想加上的内容,如下图所示,匹配更改之前:
    如图所示:更改之前
    实现后:

    实现后的样式

    • 实现为第多少章加上###符号,这个例子最大实现千位数,万位数以及以上,可以在[加入万字的正则表达式],{1,数值更大}
    展开全文
  • 正则匹配

    千次阅读 2013-08-06 09:54:27
    正则匹配模式 匹配模式指得是正则表达式引擎将以何种模式匹配字符串。 模式名称 启用,禁用 缺省启用 说明 UNIX_LINES (?d)启用,(?-d)禁用 是 启用Unix行模式。 在此模式下,只有 '\n'被认为...
    正则匹配模式
    匹配模式指得是正则表达式引擎将以何种模式匹配字符串。

    模式名称
    启用,禁用
    缺省启用
    说明
    UNIX_LINES
    (?d)启用,(?-d)禁用

    启用Unix行模式。
    在此模式下,只有 '\n'被认为是行结束符。它会影响.^, 和 $ 的行为。

    CASE_INSENSITIVE
    (?i)启用,(?-i)禁用

    启用忽略大小写模式。
    缺省时,忽略大小写模式只会影响 ASCII字符的匹配。 而Unicode范围的忽略大小写匹配需要通过 UNICODE_CASE 标志与本标志联合使用。
    启用此模式会影响匹配性能

    COMMENTS
    (?x)启用,(?-x)禁用

    允许空格和注释出现在正则表达式中。
    在此模式下,空格被忽略,以#开始的单行注释被忽略。 
    MULTILINE
    (?m)启用,(?-m)禁用

    启用多行模式。
    In multiline mode the expressions ^ and $ match just after or just before, respectively, a line terminator or the end of the input sequence. By default these expressions only match at the beginning and the end of the entire input sequence. 

    DOTALL
    (?s)启用,(?-s)禁用

    让.可以匹配行结束符。
    在此模式下,元字符.可以匹配行结束符。缺省不允许如此匹配。


    UNICODE_CASE
    (?u)启用,(?-u)禁用

    Enables Unicode-aware case folding.
    When this flag is specified then case-insensitive matching, when enabled by theCASE_INSENSITIVE flag, is done in a manner consistent with the Unicode Standard. By default, case-insensitive matching assumes that only characters in the US-ASCII charset are being matched. 启用此模式会影响性能。

    CANON_EQ
    (?c)启用,(?-c)禁用

    Enables canonical equivalence.
    When this flag is specified then two characters will be considered to match if, and only if, their full canonical decompositions match. The expression "a\u030A", for example, will match the string"?" when this flag is specified. By default, matching does not take canonical equivalence into account. 
    启用此模式会影响性能。



    字符子集  字符子集可以含有别的字符子集,并且可以通过联合操作符(缺省)和交集操作符(&&)实现组合。联合操作符表示某个子集匹配它的子子集所匹配的任意字符。交集操作符表明某个字符子集只匹配它的子子集都匹配的字符。
      字符子集所能够有的操作符的优先级如下,从高到低:
    转义符\x
    成组符 [...]
    区间符 a-z
    联合符 [a-e][i-u]
    交集符 [a-z&&[aeiou]]
      注意:在字符子集[]内部的语法根本不同于正则表达式其它部分中的语法。例如,在字符子集内部,正则表达式 . 失去了它原有的含义,而是成了一个匹配.的元字符。 

    行结束符  行结束符是一个或两个字符序列,用以表明输入字符序列中一行的结束。下面的字符被认为是行结束符:
    一个换行符('\n')。
    一个回车符加上一个换行符("\r\n")。
    一个单独的回车符('\r')。
    代表下一行的字符('\u0085')。
    行分隔符('\u2028'),Unicode中被定义。
    一个分段符('\u2029),Unicode中被定义。
      如果 UNIX_LINES 模式被启用,则只有换行符被认为是行结束符。
      如果 MULTILINE 模式被启用,。

    分组和引用  字符分组以它们的左括号的出现顺序来排序。例如在表达式((A)(B(C))),有四个分组:
    ((A)(B(C)))
    (A)
    (B(C))
    (C)
      第0组永远表示表达式本身。
      分组采用这样的命名方式,是因为,在一次匹配过程中,正则表达式会被匹配多次。以前的匹配子序列有可能在将来被使用;或者在匹配结束时,程序有可能需要重新获得所有匹配的子字符序列。
      对于正则表达式中的某个分组而言,永远只保留最后匹配的字符序列。如果对某个分组匹配尝试失败,则会保留上次匹配成功的字符序列。例如,对于正则表达式(a(b)?)+而言,字符序列"aba",将会让分组2匹配的字符序列为"b"。
      以(?开始的分组,将不会计入分组数目,也不会被后续匹配所引用。

    Unicode支持  本正则表达式匹配引擎的实现遵循了《Unicode技术报告:Unicode正则表达式指南》,实现了该指南的第二层所需的功能,但是在细微处有一些简单语法修改。
      Unicode块(Block)和分类(Category)通过\p和\P通配苻表示。\p{prop}匹配含有prop的输入序列,而\P{prop}匹配不含有prop的输入序列。Unicode块通过前缀In表示,如\p{InMongolian}。Unicode分类通过可选的前缀Is表示,因此\p{L}和\p{IsL}都代表Unicode分类 letters。Unicode块和分类都可以在正则表达式子集外部和内部使用。
      目前支持的Unicode块和分类是《Unicode标准,第三版》中所指定的块和分类。 Unicode块名称在《Unicode 字符数据库》的第14章被定义,文件名称叫Blocks-3.txt,但是名称中的空格被去掉了。例如"Basic Latin"成了"BasicLatin"。无论是标准化的还是非标准化的分类,都在该标准的第88页的第4-5表中被全部定义。

    与Perl 5正则表达式语法对比 [TBD]

    正则表达式参考
    字符
    正则表达式字符串
    匹配的字符串
    X
    字符X,包括 CJK ExtB 区汉字
    \\
    反斜杠\
    \0n 八进制0n代表的字符(0<=n<=7)
    \0nn
    八进制0nn代表的字符(0<=n<=7)
    \0mnn
    八进制0mnn代表的字符(0<=m<=3,0<=n<=7)
    \xhh
    十六进制 0xhh所代表的字符
    \uhhhh
    十六进制 0xhhhh所代表的字符。注意,目前尚不支持CJK ExtB区汉字。
    \t
    制表符('\u0009')
    \n
    换行('\u000A')
    \r
    回车('\u000D')
    \a
    响铃符('\u0007')
    \e
    取消符Escape('\001B')
    \cx
    x所代表的控制字符

    逻辑操作符
    正则表达式字符串
    匹配的字符串
    XY
    X后面跟随Y
    X|Y
    X或者Y
    (X)
    X作为分组表达式

    向后引用
    正则表达式字符串
    匹配的字符串
    \n
    n个匹配的分组

    边界元字符
    边界字符
    匹配的字符串
    ^
    行首
    $
    行末
    \b 字符边界
    \B
    非字符边界
    \A
    输入流的开始
    \G
    上次匹配的结束处
    \Z
    输入流的结束,或者是最后一个行结束符,参见[url=file:///D:/source/jtextpro/src/dist/jtextpro/docs/regexp.html#man_line_terminator]行结束符[/url]。
    \z
    输入流的结束

    重复指示符
    正则表达式字符串
    匹配的字符串
    X?
    X重复一次,或者不重复
    X*
    X重复0次或多次
    X
    X重复1次或多次
    X{n}
    X重复n次,不多也不少。
    X{n,}
    X至少重复n次
    X{n,m}
    X至少重复n次,至多重复m次。
    注:X{n,m}、?、*、+方式可以联合使用。

    字符子集
    正则表达式字符串子集
    匹配的字符串
    组合方式
    [abc]
    字符a,b或c,包括 CJK ExtB 区汉字
    简单子集
    [^abc]
    任意非a,b或c的字符。
    排除
    [a-zA-Z] 从a到z,或者A到Z,包含a,z,A,Z。
    区间
    [a-d[m-p]]
    从a到d,或者m到p,等于[a-dm-p]。
    联合
    [a-z&&[def]]
    d,e或者f。
    交集
    [a-z&&[^bc]]
    从a到z,除了b和c,等于[ad-z]
    扣除
    [a-z&&[^m-p]]
    从a到z,并且不包括从m到p,等于[a-lq-z]
    扣除

    预定义子集(元字符)
    边界字符
    匹配的字符串
    .
    任意字符,可能匹配行结束符。
    \d
    数字[0-9]
    \D 非数字[^0-9]
    \s
    空白符[ \t\n\x0B\f\r]
    \S
    非空白符[^\s]
    \w
    单词符,包含有字母和数字[a-zA-Z_0-9]
    \W
    非单词符,不包含有字母和数字。

    扩展子集(元字符)
    正则表达式字符串
    匹配的字符串




    扩展中文子集(元字符)
    名称
    块名称(\p{InXXX})
    简化通配符
    标准Unicode块,或者汉字列表
    任意双字节字符(汉字或全角符号)
    \p{InQuqnJiao}
    \E
    任意由GBK表示的汉字,不包括GB18030扩展部分,
    以及CJK ExtB区的汉字。
    任意单字节字符
    \p{InFQuanJiao}
    \~E
    任意单字节字符。
    任意全角ASCII字符
    \p{InQJAscii}
    \H
    标准HalfwidthandFullwidthForms块
    任意收录在BIG5码集中的双字节字符
    \p{InBig5}
    \I
    Big5可编码双字节字符
    匹配未收录在BIG5码集中的双字节字符 \p{InFBig5}
    \~I
    非Big5可编码双字节字符
    匹配任意汉字(不包括符号)
    \p{InHanziOrCJKExtB}
    \X
    任意汉字,包括GB18030扩展部分。
    匹配任意汉字(不包括符号)
    \p{InHanzi}
    \M
    任意汉字,不包括GB18030扩展部分。
    匹配非汉字的双字节字符
    \p{InFHanzi}
    \~M
    任意非汉字的双字节字符,
    包括GB18030扩展部分。
    地支字符
    \p{InDiZhi}
    \U
    子丑寅卯辰巳午未申酉戌亥
    匹配收录在GB码集中的双字节字符
    \p{InGB}
    \g
    收录在GB码集中的双字节字符,
    不包括GB18030扩展部分。
    匹配非收录在GB码集中的双字节字符
    \p{InFGB}
    \~g
    未收录在GB码集中的双字节字符,
    不包括GB18030扩展部分。
    匹配收录在GBK码集中的双字节字符
    \p{InGBK}
    \h
    收录在GBK码集中的双字节字符,
    不包括GB18030扩展部分。
    匹配非收录在GBK码集中的双字节字符
    \p{InFGBK}
    \~h
    未收录在GBK码集中的双字节字符,
    不包括GB18030扩展部分。
    大写希腊字母
    \p{InDaXila}
    \K
    ΑΒΓΔΕΖΗΘΙΚΛΜΝ
    ΞΟΠΡΣΤΥΦΧΨΩ
    日文片假名
    \p{InPianJia}
    \j
    标准Katakana块
    日文平假名
    \p{InPingJia}
    \J
    标准Hiragana块
    小写希腊字母
    \p{InXiaoXila}
    \k
    αβγδεζηθικλμν
    ξοπρστυφχψω
    数学符号
    \p{InMathe}
    \m
    ±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙
    ∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴
    中文数字
    \p{InCnDigit}
    \i
    〇一二三四五六七八九十百千万亿兆吉京
    大写中文数字
    \p{InDaCnDigit}
    \N
    零壹贰叁肆伍陆柒捌玖拾佰仟萬亿兆吉京
    全角标点符号
    \p{InQJBiaoDian}
    \o
    、。·ˉˇ¨〃々—~‖…‘’“”〔〕
    〈〉《》「」『』〖〗【】!"'(),
    -.:;<=>?[]{|}`﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚
    ﹛﹜﹝﹞︵︶︹︺︿﹀︽︾﹁﹂﹃﹄
    ︻︼︷︸︱︳︴
    小写俄文字
    \p{InXiaoEWen}
    \l
    абвгдеёжзийклмн
    опрстуфхцчшщъыьэюя
    大写俄文字母
    \p{InDaEWen}
    \R
    АБВГДЕЁЖЗИЙКЛМНО
    ПРСТУФХЦЧШЩЪЫЬЭЮЯ
    中文序号
    \p{InCnSN}
    \q
    ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ
    ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ
    再加上Unicode标准EnclosedAlphanumerics块
    天干字符
    \p{InTianGan}
    \T
    甲乙丙丁戊己庚辛壬癸
    竖排标点符号
    \p{InSPBiaoDian}
    \V
    ︵︶︹︺︿﹀︽︾﹁﹂﹃﹄︻︼︷︸︱︳︴
    拼音字符
    \p{InPinyin}
    \y
    āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑńňɡ
    GBK -> 0xA8A1- 0xA8C0
    只是Unicode标准LatinExtended-A块的一部分。
    注音字符
    \p{InZhuyin}
    \Y
    标准Bopomofo块
    制表字符
    \p{InZhiBiao}
    \C
    标准BoxDrawing块。
    经检查发现 textpro 的算法含有部分非标
    准Unicode制表符:“∟∣≒≦≧⊿═”。

    POSIX字符子集(只适用于ASCII)
    正则表达式字符串
    匹配的字符串
    \p{Lower}
    小写字母[a-z]
    \p{Upper}
    大写字母[A-Z]
    \p{ASCII}
    所有的ASCII字符[\x00-\x7F]
    \p{Alpha}
    大小写字母[\p{Lower}\p{Upper}]
    \p{Digit}
    数字[0-9]
    \p{Alnum}
    字母数字符,包含大小写字母和数字[\p{Alpha}\p{Digit}]
    \p{Punct}
    标点符号,!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~之一。
    \p{Graph}
    可显示字符[\p{Alnum}\p{Punct}]
    \p{Print}
    可打印字符[\p{Graph}]
    \p{Blank}
    空格或者制表符[ \t]
    \p{Cntrl}
    控制字符[\x00-\x1F\x7F
    \p{XDigit}
    十六进制数字[0-9a-fA-F]
    \p{Space}
    空白符[ \t\n\x0B\f\r]

    Unicode块和分类

    中文名称(摘自Word XP)
    代码区域
    BasicLatin
    基本拉丁语
    \u0000-\u007F
    Latin-1Supplement
    拉丁语-1
    \u0080-\u00FF
    LatinExtended-A
    拉丁语扩充-A
    \u0100-\u017F
    LatinExtended-Bound
    拉丁语扩充-B
    \u0180-\u024F
    IPAExtensions
    国际音标扩充
    \u0250-\u02AF
    SpacingModifierLetters
    进格的修饰字符
    \u02B0-\u02FF
    CombiningDiacriticalMarks
    组合用发音符
    \u0300-\u036F
    Greek
    基本希腊语
    \u0370-\u03FF
    Cyrillic
    西里尔语
    \u0400-\u04FF
    Armenian

    \u0530-\u058F
    Hebrew

    \u0590-\u05FF
    Arabic

    \u0600-\u06FF
    Syriac

    \u0700-\u074F
    Thaana

    \u0780-\u07BF
    Devanagari

    \u0900-\u097F
    Bengali

    \u0980-\u09FF
    Gurmukhi

    \u0A00-\u0A7F
    Gujarati

    \u0A80-\u0AFF
    Oriya

    \u0B00-\u0B7F
    Tamil

    \u0B80-\u0BFF
    Telugu

    \u0C00-\u0C7F
    Kannada

    \u0C80-\u0CFF
    Malayalam

    \u0D00-\u0D7F
    Sinhala

    \u0D800-\uDFF
    Thai

    \u0E00-\u0E7F
    Lao

    \u0E80-\u0EFF
    Tibetan
    藏语
    \u0F00-\u0FFF
    Myanmar

    \u1000-\u109F
    Georgian

    \u10A0-\u10FF
    HangulJamo

    \u1100-\u11FF
    Ethiopic

    \u1200-\u137F
    Cherokee

    \u13A0-\u13FF
    UnifiedCanadianAboriginalSyllabics

    \u1400-\u167F
    Ogham

    \u1680-\u169F
    Runic

    \u16A0-\u16FF
    Khmer

    \u1780-\u17FF
    Mongolian
    蒙古语
    \u1800-\u18AF
    LatinExtendedAdditional

    \u1E00-\u1EFF
    GreekExtended

    \u1F00-\u1FFF
    GeneralPunctuation
    广义标点
    \u2000-\u206F
    SuperscriptsandSubscripts

    \u2070-\u209F
    CurrencySymbols
    货币符号
    \u20A0-\u20CF
    CombiningMarksforSymbols

    \u20D0-\u20FF
    LetterlikeSymbols
    类似字母的符号
    \u2100-\u214F
    NumberForms
    数字形式
    \u2150-\u218F
    Arrows
    箭头
    \u2190-\u21FF
    MathematicalOperators
    数学运算符
    \u2200-\u22FF
    MiscellaneousTechnical
    零杂技术用符号
    \u2300-\u23FF
    ControlPictures

    \u2400-\u243F
    OpticalCharacterRecognition

    \u2440-\u245F
    EnclosedAlphanumerics
    带括号的字母数字
    \u2460-\u24FF
    BoxDrawing
    制表符
    \u2500-\u257F
    BlockElements
    方块图形
    \u2580-\u259F
    GeometricShapes
    几何图形
    \u25A0-\u25FF
    MiscellaneousSymbols
    零杂丁贝符(示意符等)
    \u2600-\u26FF
    Dingbats

    \u2700-\u27BF
    BraillePatterns

    \u2800-\u28FF
    CJKRadicalsSupplement

    \u2E80-\u2EFF
    KangxiRadicals

    \u2F00-\u2FDF
    IdeographicDescriptionCharacters

    \u2FF0-\u2FFF
    CJKSymbolsandPunctuation
    CJK符号和标点
    \u3000-\u303F
    Hiragana
    平假名
    \u3040-\u309F
    Katakana
    片假名
    \u30A0-\u30FF
    Bopomofo
    注音
    \u3100-\u312F
    HangulCompatibilityJamo

    \u3130-\u318F
    Kanbun

    \u3190-\u319F
    BopomofoExtended
    扩展注音
    \u31A0-\u31BF
    EnclosedCJKLettersandMonths
    带括号的CJK字母及月份
    \u3200-\u32FF
    CJKCompatibility
    CJK兼容字符
    \u3300-\u33FF 
    CJKUnifiedIdeographsExtensionA
    CJK统一汉字扩展-A
    \u3400-\u4dBF
    CJKUnifiedIdeographs
    CJK统一汉字
    \u4E00-\u9fAF
    YiSyllables

    \uA000-\uA48F
    YiRadicals

    \uA490-\uA4CF
    HangulSyllables

    \uAC00-\uD7A3
    HighSurrogates

    \uD800-\uDB7F
    HighPrivateUseSurrogates

    \uDB80-\uDBFF
    LowSurrogates

    \uDC00-\uDFFF
    PrivateUse
    专用区
    \uE000-\uF8FF
    CJKCompatibilityIdeographs
    CJK兼容汉字
    \uF900-\uFAFF
    AlphabeticPresentationForms

    \uFB00-\uFB4F
    ArabicPresentationForms-A

    \uFB50-\uFDFF
    CombiningHalfMarks

    \uFE20-\uFE2F
    CJKCompatibilityForms
    CJK兼容形式
    \uFE30-\uFE4F
    SmallFormVariants
    小写变体
    \uFE50-\uFE6F
    ArabicPresentationForms-Bound

    \uFE70-\ufeFF
    Specials

    \uFFF0-\uFFFF
    HalfwidthandFullwidthForms
    半形及全形字符
    \uFF00-\uFFEF


    分类
    全称
    说明
    Cn

    UNASSIGNED
    Lu

    UPPERCASE_LETTER
    Ll

    LOWERCASE_LETTER
    Lt

    TITLECASE_LETTER
    Lm

    MODIFIER_LETTER
    Lo

    OTHER_LETTER
    Mn

    NON_SPACING_MARK
    Me

    ENCLOSING_MARK
    Mc

    COMBINING_SPACING_MARK
    Nd

    DECIMAL_DIGIT_NUMBER
    Nl

    LETTER_NUMBER
    No

    OTHER_NUMBER
    Zs

    SPACE_SEPARATOR
    Zl

    LINE_SEPARATOR
    Zp

    PARAGRAPH_SEPARATOR
    Cc

    CNTRL
    Cf

    FORMAT
    Co

    PRIVATE_USE
    Cs

    SURROGATE
    Pd

    DASH_PUNCTUATION
    Ps

    START_PUNCTUATION
    Pe

    END_PUNCTUATION
    Pc

    CONNECTOR_PUNCTUATION
    Po

    OTHER_PUNCTUATION
    Sm

    MATH_SYMBOL
    Sc

    CURRENCY_SYMBOL
    Sk

    MODIFIER_SYMBOL
    So

    OTHER_SYMBOL
    L

    LETTER
    M

    MARK
    N

    NUMBER
    Z

    SEPARATOR
    C

    CONTROL
    P

    PUNCTUATION
    S

    SYMBOL
    LD

    LETTER_OR_DIGIT
    L1

    Latin-1
    all

    ALL
    ASCII

    ASCII
    Alnum

    字母数字(0-9,a-z,A-Z)
    Alpha

    字母(a-z,A-Z)
    Blank

    空格和制表符(' '|\t)
    Cntrl

    控制字符,不可打印
    Digit

    数字(0-9)
    Graph

    可打印且可视字母(例如空格' '是可打印的但不是可视字母,而 `a' 两者都是。)
    Lower

    小写字母
    Print

    可打印字母(非控制字符)
    Punct

    标符号(字母、数字、控制、空白符以外的字母),如:!@#$%}{<>,./?[]等等。
    Space

    空白符(' ',\t,0x09,0x0A,0x0B,0x0C,0x0D,0x20)
    Upper

    大写字母
    XDigit

    十六进制数字(0-9,a-f, A-F)




    替换表达式特殊字符
    特殊字符介绍
    描述
    \n
    换行
    \b
    向前删除一个字符。当这个字符位于替换串之首时,将删除匹配串之前的一个字符。若匹配串位于行首,将使匹配串所在行与前一行相合并。
    \d
    向后删除一个字符。当这个字符位于替换串之末时,将删除匹配串之后的一个字符。若匹配串位于行末,将使匹配串所在行与下一行相合并。
    \e
    插入一个ESC字符
    \t
    插入一个TAB字符
    \n
    n代表查找正则表达式中的子表达式(组)。\1代表第一个子表达式,\2代表第二个子表达式,依次类推。\0代表整个匹配到的字符串。
    \v
    大写下一个字母
    \U
    全部大写以后的字母,直到碰到其它指示符为止。
    \l
    小写下一个字母
    \L
    全部小写以后的字母,直到碰到其它指示符为止。
    \E
    取消所有的字母大小写指示符。


    自定义替换表

    在查找/替换中使用自定义替换表 
    有的时候,上述简单的自定义替换功能是不够的。例如,用户可能希望只把出现在括号内的源串替换为目标串。这种文本处理可以通过在查找/替换中使用自定义替换表来解决。 

    在查找/替换功能中使用自定义替换表的替换函数是\Tn,其中n是0-9的数字, 注意n为0表示第10张替换表。如果略去n,其效果相当于\T1,即使用第一张替换表。例如要把所有放在方括号中的汉字替换为拼音,可以查找“\[(\E)\]”,替换为“\T{\1}”。即把第一个子表达式的匹配内容按自定义替换表转换。注意,如果\T函数的参数不在替换表的源串中,\T函数的结果与源串相同,即不做任何变换。 

    有些情况下,用户可能希望只使用替换表的一部分内容。还是以拼音为例,前面给出的替换表中包含了拼音的音调,如果在替换时不希望加上这些音调数字,可以使用“过滤”功能。所谓过滤,其实是用一个正则表达式去分析替换表的目标串,并把其中的某个子表达式取出来。 

    使用“过滤”时,在“设置自定义替换表”对话框中,点“过滤”按钮,在弹出的对话框中填入一个正则表达式。再以拼音为例,表达式可以写为“(\p{Alpha}+)(\d)”,其中第一对括号中的是不含音调的拼音,第二对括号是音调。在调用\T函数时,JTextPro会在目标串中查找这个正则表达式。但是如何把其中的子表达式取出来呢?\T函数还有一个可选的下标,取第n个子表达式的值就写作\T{...}[n]。所以,把放在方括号中的汉字替换为不带调的拼音,可以查找“\[(\E)\]”,替换为“\T{\1}[1]” 



    匹配汉字:

    Regex r= new Regex(@"[\u4e00-\u9fa5]+");
    MatchCollection m=r.Match(yourstring);

    -------------------------
    如果需要使用正则表达式匹配Unicode字符的话... 
    这里是几个主要非英文语系字符范围(google上找到的):

    2E80~33FFh:中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符,中日韩的符号、标点、带圈或带括符文数字、月份,以及日本的假名组合、单位、年号、月份、日期、时间等。

    3400~4DFFh:中日韩认同表意文字扩充A区,总计收容6,582个中日韩汉字。

    4E00~9FFFh:中日韩认同表意文字区,总计收容20,902个中日韩汉字。

    A000~A4FFh:彝族文字区,收容中国南方彝族文字和字根。

    AC00~D7FFh:韩文拼音组合字区,收容以韩文音符拼成的文字。

    F900~FAFFh:中日韩兼容表意文字区,总计收容302个中日韩汉字。

    FB00~FFFDh:文字表现形式区,收容组合拉丁文字、希伯来文、阿拉伯文、中日韩直式标点、小符号、半角符号、全角符号等。

    比如需要匹配所有中日韩非符号字符,那么正则表达式应该是^[\u3400-\u9FFF]+$
    理论上没错, 可是我到msn.co.ko随便复制了个韩文下来, 发现根本不对, 诡异
    再到msn.co.jp复制了个'お', 也不得行..
    展开全文
  • Hive 正则匹配函数

    千次阅读 2019-06-20 17:39:34
    正则匹配字符解释: ^ 表示开头 $ 表示结尾 . 表示任意字符 * 表示任意多个 1、元字符匹配 (.) 表示匹配除换行符以外的任意字符。 (\w) 表示匹配字母、下划线、数字或汉字(\\W)。 (\d) 表示匹配数字 (\s) ...

    正则匹配字符解释

    • ^ 表示开头
    • $ 表示结尾
    • . 表示任意字符
    • * 表示任意多个

    1、元字符匹配

    (.)   表示匹配除换行符以外的任意字符。

    (\w) 表示匹配字母、下划线、数字或汉字(\\W)。

    (\d) 表示匹配数字

    (\s) 表示匹配任意的空白符

    ([ ])  表示匹配方括号中任一字符

    ([^匹配内容]) 表示匹配方括号中任一字符

    2、位置匹配

    (^) 表示匹配字符串的开始,空值:^$

    ($) 表示匹配字符串的结束

    (\b) 表示匹配单词的开始或结束。

    (\B) 表示匹配非单词的开始或结束

    3、频率匹配

    (*) 表示匹配重复0次或多次

    (+) 表示匹配重复一次或更多次

    (?) 表示匹配重复0次或1次

    ({n}) 表示匹配重复n次

    ({n,}) 表示重复n次或更多次

    ({n,m}) 表示重复n到m次

    正则匹配函数:regexp_extract函数

    用法:

    regexp_extract(string subject, string pattern, int index)
     

    1)regexp_extract函数

    语法:    regexp_extract(string subject,  string pattern,  int index)

    返回值: string

    说明:  将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。

    第一参数:   要处理的字段

    第二参数:    需要匹配的正则表达式

    第三个参数:

    • 0是显示与之匹配的整个字符串
    • 1 是显示第一个括号里面的
    • 2 是显示第二个括号里面的字段...

     

    注意,在有些情况下要使用转义字符(双斜杠了‘\\’)。

    2) regexp_substr

    regexp_substr(string, regex,postion,match_parameter)

      string : 被解析的字符串或字段名

      regex: 正则表达式

      postion:其实位置

      match_parameter:出现的次数

     

    For example:

                      select regexp_substr('别克-君威2010款 2.4L A.MT 旗舰版2.3T','[[:alnum:]][[:punct:]][[:alnum:]][LT]',1,1)  from dual

                     分析: 上面正则的意思是 [[:alnum:]][[:punct:]][[:alnum:]][LT]  ===> 任何字母(不区分大小写)和数字+ 任何标点符号+任何字母和数字 +(L或者T)的组合

                      后面   1,1 的意思是从匹配的字符串起,符合正则且第一次出现的字符串

                      结果:  2.4L

                     

                     换个方式提取  A.MT SQL语句如下

                    select regexp_substr('别克-君威2010款 2.4L A.MT 旗舰版2.3T','[[:alnum:]][[:punct:]][[:alnum:]][LT]',1,2)  from dual

                    如果提取2.3T ,把最后那个数字改成3即可,就不写sql了。累!

                    

                     select
                     REGEXP_SUBSTR('9.00w','([0-9]*)[[:punct:]]([0-9]*)',1,1) 
                     from dual

                    大家可以验证一下这个语句!

          3)regexp

     regexp的用法比较简单,就是个判断语句跟like、=、!=、not in 、in 的感觉一样
     

    1、关于正则表达式的符号及意义

    正则表达式由标准的元字符(metacharacters)所构成:

     

    /

    做为转意,即通常在"/"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后//b/,转意为匹配一个单词的边界。
    -或- 
    对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"/"后,/a/*/将只匹配"a*"。

    ^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"
    $ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"
    * 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa
    + 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa
    ? 匹配前面元字符0次或1次,/ba*/将匹配b,ba
    (x) 匹配x保存x在名为$1...$9的变量中
    x|y 匹配x或y
    {n} 精确匹配n次
    {n,} 匹配n次以上
    {n,m} 匹配n-m次
    [xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符)
    [^xyz] 不匹配这个集合中的任何一个字符
    [/b] 匹配一个退格符
    /b 匹配一个单词的边界
    /B 匹配一个单词的非边界
    /cX 这儿,X是一个控制符,//cM/匹配Ctrl-M
    /d 匹配一个字数字符,//d/ = /[0-9]/
    /D 匹配一个非字数字符,//D/ = /[^0-9]/
    /n 匹配一个换行符
    /r 匹配一个回车符
    /s 匹配一个空白字符,包括/n,/r,/f,/t,/v等
    /S 匹配一个非空白字符,等于/[^/n/f/r/t/v]/
    /t 匹配一个制表符
    /v 匹配一个重直制表符
    /w 匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[/w]匹配"$5.98"中的5,等于[a-zA-Z0-9]
    /W 匹配一个不可以组成单词的字符,如[/W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。

    '( )' 标记一个子表达式的开始和结束位置。
    '[]' 标记一个中括号表达式。
    /num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。
    字符簇: 
    [[:alpha:]] 任何字母。
    [[:digit:]] 任何数字。
    [[:alnum:]] 任何字母和数字。
    [[:space:]] 任何白字符。
    [[:upper:]] 任何大写字母。
    [[:lower:]] 任何小写字母。
    [[:punct:]] 任何标点符号。
    [[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]

     

    [[:<:]],[[:>:]] 标记表示word边界。它们分别与word的开始和结束匹配。word是一系列字字符,其前面和后面均没有字字符。字字符是alnum类中的字母数字字符或下划线(_)

     

    各种操作符的运算优先级:
    / 转义符
    (), (?:), (?=), [] 圆括号和方括号
    *, +, ?, {n}, {n,}, {n,m} 限定符
    ^, $, anymetacharacter 位置和顺序

     

    2、regexp_extract函数

    regexp_extract(str, regexp[, idx]) - extracts a group that matches regexp

    字符串正则表达式解析函数。

     

    参数解释:

    其中:

    str是被解析的字符串或字段名

    regexp 是正则表达式

    idx是返回结果 取表达式的哪一部分  默认值为1。

    0表示把整个正则表达式对应的结果全部返回

    1表示返回正则表达式中第一个() 对应的结果 以此类推 

    展开全文
  • 正则匹配模式

    千次阅读 2011-12-18 16:38:34
    正则匹配模式 匹配模式指得是正则表达式引擎将以何种模式匹配字符串。 模式名称 启用,禁用 缺省启用 说明 UNIX_LINES (?d)启用,(?-d)禁用 是 启用Unix行

    [转自]http://www.cnblogs.com/symbol441/archive/2007/11/24/971170.html

    正则匹配模式

    匹配模式指得是正则表达式引擎将以何种模式匹配字符串。

    模式名称 启用,禁用 缺省启用 说明
    UNIX_LINES (?d)启用,(?-d)禁用 启用Unix行模式。
    在此模式下,只有 '\n'被认为是行结束符。它会影响.^, 和 $ 的行为。
    CASE_INSENSITIVE (?i)启用,(?-i)禁用 启用忽略大小写模式。
    缺省时,忽略大小写模式只会影响 ASCII字符的匹配。 而Unicode范围的忽略大小写匹配需要通过 UNICODE_CASE 标志与本标志联合使用。
    启用此模式会影响匹配性能。
    COMMENTS (?x)启用,(?-x)禁用 允许空格和注释出现在正则表达式中。
    在此模式下,空格被忽略,以#开始的单行注释被忽略。 
    MULTILINE (?m)启用,(?-m)禁用 启用多行模式。
    In multiline mode the expressions ^ and $ match just after or just before, respectively, a line terminator or the end of the input sequence. By default these expressions only match at the beginning and the end of the entire input sequence. 
    DOTALL (?s)启用,(?-s)禁用 让.可以匹配行结束符。
    在此模式下,元字符.可以匹配行结束符。缺省不允许如此匹配。

    UNICODE_CASE (?u)启用,(?-u)禁用 Enables Unicode-aware case folding.
    When this flag is specified then case-insensitive matching, when enabled by the CASE_INSENSITIVE flag, is done in a manner consistent with the Unicode Standard. By default, case-insensitive matching assumes that only characters in the US-ASCII charset are being matched. 启用此模式会影响性能。
    CANON_EQ (?c)启用,(?-c)禁用 Enables canonical equivalence.
    When this flag is specified then two characters will be considered to match if, and only if, their full canonical decompositions match. The expression"a\u030A", for example, will match the string "?" when this flag is specified. By default, matching does not take canonical equivalence into account. 
    启用此模式会影响性能。


    字符子集

      字符子集可以含有别的字符子集,并且可以通过联合操作符(缺省)和交集操作符(&&)实现组合。联合操作符表示某个子集匹配它的子子集所匹配的任意字符。交集操作符表明某个字符子集只匹配它的子子集都匹配的字符。
      字符子集所能够有的操作符的优先级如下,从高到低:
    1. 转义符\x
    2. 成组符 [...]
    3. 区间符 a-z
    4. 联合符 [a-e][i-u]
    5. 交集符 [a-z&&[aeiou]]
      注意:在字符子集[]内部的语法根本不同于正则表达式其它部分中的语法。例如,在字符子集内部,正则表达式 . 失去了它原有的含义,而是成了一个匹配.的元字符。 

    行结束符

      行结束符是一个或两个字符序列,用以表明输入字符序列中一行的结束。下面的字符被认为是行结束符:
    • 一个换行符('\n')。
    • 一个回车符加上一个换行符("\r\n")。
    • 一个单独的回车符('\r')。
    • 代表下一行的字符('\u0085')。
    • 行分隔符('\u2028'),Unicode中被定义。
    • 一个分段符('\u2029),Unicode中被定义。
      如果 UNIX_LINES 模式被启用,则只有换行符被认为是行结束符。
      如果 MULTILINE 模式被启用,。

    分组和引用

      字符分组以它们的左括号的出现顺序来排序。例如在表达式((A)(B(C))),有四个分组:
    1. ((A)(B(C)))
    2. (A)
    3. (B(C))
    4. (C)
      第0组永远表示表达式本身。
      分组采用这样的命名方式,是因为,在一次匹配过程中,正则表达式会被匹配多次。以前的匹配子序列有可能在将来被使用;或者在匹配结束时,程序有可能需要重新获得所有匹配的子字符序列。
      对于正则表达式中的某个分组而言,永远只保留最后匹配的字符序列。如果对某个分组匹配尝试失败,则会保留上次匹配成功的字符序列。例如,对于正则表达式(a(b)?)+而言,字符序列"aba",将会让分组2匹配的字符序列为"b"。
      以(?开始的分组,将不会计入分组数目,也不会被后续匹配所引用。

    Unicode支持

      本正则表达式匹配引擎的实现遵循了《Unicode技术报告:Unicode正则表达式指南》,实现了该指南的第二层所需的功能,但是在细微处有一些简单语法修改。
      Unicode块(Block)和分类(Category)通过\p和\P通配苻表示。\p{prop}匹配含有prop的输入序列,而\P{prop}匹配不含有prop的输入序列。Unicode块通过前缀In表示,如\p{InMongolian}。Unicode分类通过可选的前缀Is表示,因此\p{L}和\p{IsL}都代表Unicode分类 letters。Unicode块和分类都可以在正则表达式子集外部和内部使用。
      目前支持的Unicode块和分类是《Unicode标准,第三版》中所指定的块和分类。 Unicode块名称在《Unicode 字符数据库》的第14章被定义,文件名称叫Blocks-3.txt,但是名称中的空格被去掉了。例如"Basic Latin"成了"BasicLatin"。无论是标准化的还是非标准化的分类,都在该标准的第88页的第4-5表中被全部定义。

    与Perl 5正则表达式语法对比

    [TBD]


    正则表达式参考



    字符

    正则表达式字符串 匹配的字符串
    X 字符X,包括 CJK ExtB 区汉字
    \\ 反斜杠\
    \0n 八进制0n代表的字符(0<=n<=7)
    \0nn 八进制0nn代表的字符(0<=n<=7)
    \0mnn 八进制0mnn代表的字符(0<=m<=3,0<=n<=7)
    \xhh 十六进制 0xhh所代表的字符
    \uhhhh 十六进制 0xhhhh所代表的字符。注意,目前尚不支持CJK ExtB区汉字。
    \t 制表符('\u0009')
    \n 换行('\u000A')
    \r 回车('\u000D')
    \a 响铃符('\u0007')
    \e 取消符Escape('\001B')
    \cx x所代表的控制字符

    逻辑操作符

    正则表达式字符串 匹配的字符串
    XY X后面跟随Y
    X|Y X或者Y
    (X) X作为分组表达式

    向后引用

    正则表达式字符串 匹配的字符串
    \n n个匹配的分组

    边界元字符

    边界字符 匹配的字符串
    ^ 行首
    $ 行末
    \b 字符边界
    \B 非字符边界
    \A 输入流的开始
    \G 上次匹配的结束处
    \Z 输入流的结束,或者是最后一个行结束符,参见行结束符
    \z 输入流的结束

    重复指示符

    正则表达式字符串 匹配的字符串
    X? X重复一次,或者不重复
    X* X重复0次或多次
    X X重复1次或多次
    X{n} X重复n次,不多也不少。
    X{n,} X至少重复n次
    X{n,m} X至少重复n次,至多重复m次。
    注:X{n,m}、?、*、+方式可以联合使用。

    字符子集

    正则表达式字符串子集 匹配的字符串 组合方式
    [abc] 字符a,b或c,包括 CJK ExtB 区汉字 简单子集
    [^abc] 任意非a,b或c的字符。 排除
    [a-zA-Z] 从a到z,或者A到Z,包含a,z,A,Z。 区间
    [a-d[m-p]] 从a到d,或者m到p,等于[a-dm-p]。 联合
    [a-z&&[def]] d,e或者f。 交集
    [a-z&&[^bc]] 从a到z,除了b和c,等于[ad-z] 扣除
    [a-z&&[^m-p]] 从a到z,并且不包括从m到p,等于[a-lq-z] 扣除

    预定义子集(元字符)

    边界字符 匹配的字符串
    . 任意字符,可能匹配行结束符。
    \d 数字[0-9]
    \D 非数字[^0-9]
    \s 空白符[ \t\n\x0B\f\r]
    \S 非空白符[^\s]
    \w 单词符,包含有字母和数字[a-zA-Z_0-9]
    \W 非单词符,不包含有字母和数字。

    扩展子集(元字符)

    正则表达式字符串 匹配的字符串
       


    扩展中文子集(元字符)

    名称 块名称(\p{InXXX}) 简化通配符 标准Unicode块,或者汉字列表
    任意双字节字符(汉字或全角符号) \p{InQuqnJiao} \E 任意由GBK表示的汉字,不包括GB18030扩展部分,
    以及CJK ExtB区的汉字。
    任意单字节字符 \p{InFQuanJiao} \~E 任意单字节字符。
    任意全角ASCII字符 \p{InQJAscii} \H 标准HalfwidthandFullwidthForms块
    任意收录在BIG5码集中的双字节字符 \p{InBig5} \I Big5可编码双字节字符
    匹配未收录在BIG5码集中的双字节字符 \p{InFBig5} \~I 非Big5可编码双字节字符
    匹配任意汉字(不包括符号) \p{InHanziOrCJKExtB} \X 任意汉字,包括GB18030扩展部分。
    匹配任意汉字(不包括符号) \p{InHanzi} \M 任意汉字,不包括GB18030扩展部分。
    匹配非汉字的双字节字符 \p{InFHanzi} \~M 任意非汉字的双字节字符,
    包括GB18030扩展部分。
    地支字符 \p{InDiZhi} \U 子丑寅卯辰巳午未申酉戌亥
    匹配收录在GB码集中的双字节字符 \p{InGB} \g 收录在GB码集中的双字节字符,
    不包括GB18030扩展部分。
    匹配非收录在GB码集中的双字节字符 \p{InFGB} \~g 未收录在GB码集中的双字节字符,
    不包括GB18030扩展部分。
    匹配收录在GBK码集中的双字节字符 \p{InGBK} \h 收录在GBK码集中的双字节字符,
    不包括GB18030扩展部分。
    匹配非收录在GBK码集中的双字节字符 \p{InFGBK} \~h 未收录在GBK码集中的双字节字符,
    不包括GB18030扩展部分。
    大写希腊字母 \p{InDaXila} \K ΑΒΓΔΕΖΗΘΙΚΛΜΝ
    ΞΟΠΡΣΤΥΦΧΨΩ
    日文片假名 \p{InPianJia} \j 标准Katakana块
    日文平假名 \p{InPingJia} \J 标准Hiragana块
    小写希腊字母 \p{InXiaoXila} \k αβγδεζηθικλμν
    ξοπρστυφχψω
    数学符号 \p{InMathe} \m ±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙
    ∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴
    中文数字 \p{InCnDigit} \i 〇一二三四五六七八九十百千万亿兆吉京
    大写中文数字 \p{InDaCnDigit} \N 零壹贰叁肆伍陆柒捌玖拾佰仟萬亿兆吉京
    全角标点符号 \p{InQJBiaoDian} \o 、。·ˉˇ¨〃々—~‖…‘’“”〔〕
    〈〉《》「」『』〖〗【】!"'(),
    -.:;<=>?[]{|}`﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚
    ﹛﹜﹝﹞︵︶︹︺︿﹀︽︾﹁﹂﹃﹄
    ︻︼︷︸︱︳︴
    小写俄文字母 \p{InXiaoEWen} \l абвгдеёжзийклмн
    опрстуфхцчшщъыьэюя
    大写俄文字母 \p{InDaEWen} \R АБВГДЕЁЖЗИЙКЛМНО
    ПРСТУФХЦЧШЩЪЫЬЭЮЯ
    中文序号 \p{InCnSN} \q ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ
    ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ
    再加上Unicode标准EnclosedAlphanumerics块
    天干字符 \p{InTianGan} \T 甲乙丙丁戊己庚辛壬癸
    竖排标点符号 \p{InSPBiaoDian} \V ︵︶︹︺︿﹀︽︾﹁﹂﹃﹄︻︼︷︸︱︳︴
    拼音字符 \p{InPinyin} \y āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑńňɡ
    GBK -> 0xA8A1- 0xA8C0
    只是Unicode标准LatinExtended-A块的一部分。
    注音字符 \p{InZhuyin} \Y 标准Bopomofo块
    制表字符 \p{InZhiBiao} \C 标准BoxDrawing块。
    经检查发现 textpro 的算法含有部分非标
    准Unicode制表符:“∟∣≒≦≧⊿═”。

    POSIX字符子集(只适用于ASCII)

    正则表达式字符串 匹配的字符串
    \p{Lower} 小写字母[a-z]
    \p{Upper} 大写字母[A-Z]
    \p{ASCII} 所有的ASCII字符[\x00-\x7F]
    \p{Alpha} 大小写字母[\p{Lower}\p{Upper}]
    \p{Digit} 数字[0-9]
    \p{Alnum} 字母数字符,包含大小写字母和数字[\p{Alpha}\p{Digit}]
    \p{Punct} 标点符号,!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~之一。
    \p{Graph} 可显示字符[\p{Alnum}\p{Punct}]
    \p{Print} 可打印字符[\p{Graph}]
    \p{Blank} 空格或者制表符[ \t]
    \p{Cntrl} 控制字符[\x00-\x1F\x7F
    \p{XDigit} 十六进制数字[0-9a-fA-F]
    \p{Space} 空白符[ \t\n\x0B\f\r]

    Unicode块和分类

    中文名称(摘自Word XP) 代码区域
    BasicLatin 基本拉丁语 \u0000-\u007F
    Latin-1Supplement 拉丁语-1 \u0080-\u00FF
    LatinExtended-A 拉丁语扩充-A \u0100-\u017F
    LatinExtended-Bound 拉丁语扩充-B \u0180-\u024F
    IPAExtensions 国际音标扩充 \u0250-\u02AF
    SpacingModifierLetters 进格的修饰字符 \u02B0-\u02FF
    CombiningDiacriticalMarks 组合用发音符 \u0300-\u036F
    Greek 基本希腊语 \u0370-\u03FF
    Cyrillic 西里尔语 \u0400-\u04FF
    Armenian   \u0530-\u058F
    Hebrew   \u0590-\u05FF
    Arabic   \u0600-\u06FF
    Syriac   \u0700-\u074F
    Thaana   \u0780-\u07BF
    Devanagari   \u0900-\u097F
    Bengali   \u0980-\u09FF
    Gurmukhi   \u0A00-\u0A7F
    Gujarati   \u0A80-\u0AFF
    Oriya   \u0B00-\u0B7F
    Tamil   \u0B80-\u0BFF
    Telugu   \u0C00-\u0C7F
    Kannada   \u0C80-\u0CFF
    Malayalam   \u0D00-\u0D7F
    Sinhala   \u0D800-\uDFF
    Thai   \u0E00-\u0E7F
    Lao   \u0E80-\u0EFF
    Tibetan 藏语 \u0F00-\u0FFF
    Myanmar   \u1000-\u109F
    Georgian   \u10A0-\u10FF
    HangulJamo   \u1100-\u11FF
    Ethiopic   \u1200-\u137F
    Cherokee   \u13A0-\u13FF
    UnifiedCanadianAboriginalSyllabics   \u1400-\u167F
    Ogham   \u1680-\u169F
    Runic   \u16A0-\u16FF
    Khmer   \u1780-\u17FF
    Mongolian 蒙古语 \u1800-\u18AF
    LatinExtendedAdditional   \u1E00-\u1EFF
    GreekExtended   \u1F00-\u1FFF
    GeneralPunctuation 广义标点 \u2000-\u206F
    SuperscriptsandSubscripts   \u2070-\u209F
    CurrencySymbols 货币符号 \u20A0-\u20CF
    CombiningMarksforSymbols   \u20D0-\u20FF
    LetterlikeSymbols 类似字母的符号 \u2100-\u214F
    NumberForms 数字形式 \u2150-\u218F
    Arrows 箭头 \u2190-\u21FF
    MathematicalOperators 数学运算符 \u2200-\u22FF
    MiscellaneousTechnical 零杂技术用符号 \u2300-\u23FF
    ControlPictures   \u2400-\u243F
    OpticalCharacterRecognition   \u2440-\u245F
    EnclosedAlphanumerics 带括号的字母数字 \u2460-\u24FF
    BoxDrawing 制表符 \u2500-\u257F
    BlockElements 方块图形 \u2580-\u259F
    GeometricShapes 几何图形 \u25A0-\u25FF
    MiscellaneousSymbols 零杂丁贝符(示意符等) \u2600-\u26FF
    Dingbats   \u2700-\u27BF
    BraillePatterns   \u2800-\u28FF
    CJKRadicalsSupplement   \u2E80-\u2EFF
    KangxiRadicals   \u2F00-\u2FDF
    IdeographicDescriptionCharacters   \u2FF0-\u2FFF
    CJKSymbolsandPunctuation CJK符号和标点 \u3000-\u303F
    Hiragana 平假名 \u3040-\u309F
    Katakana 片假名 \u30A0-\u30FF
    Bopomofo 注音 \u3100-\u312F
    HangulCompatibilityJamo   \u3130-\u318F
    Kanbun   \u3190-\u319F
    BopomofoExtended 扩展注音 \u31A0-\u31BF
    EnclosedCJKLettersandMonths 带括号的CJK字母及月份 \u3200-\u32FF
    CJKCompatibility CJK兼容字符 \u3300-\u33FF 
    CJKUnifiedIdeographsExtensionA CJK统一汉字扩展-A \u3400-\u4dBF
    CJKUnifiedIdeographs CJK统一汉字 \u4E00-\u9fAF
    YiSyllables   \uA000-\uA48F
    YiRadicals   \uA490-\uA4CF
    HangulSyllables   \uAC00-\uD7A3
    HighSurrogates   \uD800-\uDB7F
    HighPrivateUseSurrogates   \uDB80-\uDBFF
    LowSurrogates   \uDC00-\uDFFF
    PrivateUse 专用区 \uE000-\uF8FF
    CJKCompatibilityIdeographs CJK兼容汉字 \uF900-\uFAFF
    AlphabeticPresentationForms   \uFB00-\uFB4F
    ArabicPresentationForms-A   \uFB50-\uFDFF
    CombiningHalfMarks   \uFE20-\uFE2F
    CJKCompatibilityForms CJK兼容形式 \uFE30-\uFE4F
    SmallFormVariants 小写变体 \uFE50-\uFE6F
    ArabicPresentationForms-Bound   \uFE70-\ufeFF
    Specials   \uFFF0-\uFFFF
    HalfwidthandFullwidthForms 半形及全形字符 \uFF00-\uFFEF


    分类 全称 说明
    Cn   UNASSIGNED
    Lu   UPPERCASE_LETTER
    Ll   LOWERCASE_LETTER
    Lt   TITLECASE_LETTER
    Lm   MODIFIER_LETTER
    Lo   OTHER_LETTER
    Mn   NON_SPACING_MARK
    Me   ENCLOSING_MARK
    Mc   COMBINING_SPACING_MARK
    Nd   DECIMAL_DIGIT_NUMBER
    Nl   LETTER_NUMBER
    No   OTHER_NUMBER
    Zs   SPACE_SEPARATOR
    Zl   LINE_SEPARATOR
    Zp   PARAGRAPH_SEPARATOR
    Cc   CNTRL
    Cf   FORMAT
    Co   PRIVATE_USE
    Cs   SURROGATE
    Pd   DASH_PUNCTUATION
    Ps   START_PUNCTUATION
    Pe   END_PUNCTUATION
    Pc   CONNECTOR_PUNCTUATION
    Po   OTHER_PUNCTUATION
    Sm   MATH_SYMBOL
    Sc   CURRENCY_SYMBOL
    Sk   MODIFIER_SYMBOL
    So   OTHER_SYMBOL
    L   LETTER
    M   MARK
    N   NUMBER
    Z   SEPARATOR
    C   CONTROL
    P   PUNCTUATION
    S   SYMBOL
    LD   LETTER_OR_DIGIT
    L1   Latin-1
    all   ALL
    ASCII   ASCII
    Alnum   字母数字(0-9,a-z,A-Z)
    Alpha   字母(a-z,A-Z)
    Blank   空格和制表符(' '|\t)
    Cntrl   控制字符,不可打印
    Digit   数字(0-9)
    Graph   可打印且可视字母(例如空格' '是可打印的但不是可视字母,而 `a' 两者都是。)
    Lower   小写字母
    Print   可打印字母(非控制字符)
    Punct   标符号(字母、数字、控制、空白符以外的字母),如:!@#$%}{<>,./?[]等等。
    Space   空白符(' ',\t,0x09,0x0A,0x0B,0x0C,0x0D,0x20)
    Upper   大写字母
    XDigit   十六进制数字(0-9,a-f, A-F)





    替换表达式

    特殊字符
    特殊字符介绍 描述
    \n 换行
    \b 向前删除一个字符。当这个字符位于替换串之首时,将删除匹配串之前的一个字符。若匹配串位于行首,将使匹配串所在行与前一行相合并。
    \d 向后删除一个字符。当这个字符位于替换串之末时,将删除匹配串之后的一个字符。若匹配串位于行末,将使匹配串所在行与下一行相合并。
    \e 插入一个ESC字符
    \t 插入一个TAB字符
    \n n代表查找正则表达式中的子表达式(组)。\1代表第一个子表达式,\2代表第二个子表达式,依次类推。\0代表整个匹配到的字符串。
    \v 大写下一个字母
    \U 全部大写以后的字母,直到碰到其它指示符为止。
    \l 小写下一个字母
    \L 全部小写以后的字母,直到碰到其它指示符为止。
    \E 取消所有的字母大小写指示符。


    自定义替换表

    在查找/替换中使用自定义替换表 
    有的时候,上述简单的自定义替换功能是不够的。例如,用户可能希望只把出现在括号内的源串替换为目标串。这种文本处理可以通过在查找/替换中使用自定义替换表来解决。 

    在查找/替换功能中使用自定义替换表的替换函数是\Tn,其中n是0-9的数字, 注意n为0表示第10张替换表。如果略去n,其效果相当于\T1,即使用第一张替换表。例如要把所有放在方括号中的汉字替换为拼音,可以查找“\[(\E)\]”,替换为“\T{\1}”。即把第一个子表达式的匹配内容按自定义替换表转换。注意,如果\T函数的参数不在替换表的源串中,\T函数的结果与源串相同,即不做任何变换。 

    有些情况下,用户可能希望只使用替换表的一部分内容。还是以拼音为例,前面给出的替换表中包含了拼音的音调,如果在替换时不希望加上这些音调数字,可以使用“过滤”功能。所谓过滤,其实是用一个正则表达式去分析替换表的目标串,并把其中的某个子表达式取出来。 

    使用“过滤”时,在“设置自定义替换表”对话框中,点“过滤”按钮,在弹出的对话框中填入一个正则表达式。再以拼音为例,表达式可以写为“(\p{Alpha}+)(\d)”,其中第一对括号中的是不含音调的拼音,第二对括号是音调。在调用\T函数时,JTextPro会在目标串中查找这个正则表达式。但是如何把其中的子表达式取出来呢?\T函数还有一个可选的下标,取第n个子表达式的值就写作\T{...}[n]。所以,把放在方括号中的汉字替换为不带调的拼音,可以查找“\[(\E)\]”,替换为“\T{\1}[1]” 



    匹配汉字:

    Regex r= new Regex(@"[\u4e00-\u9fa5]+");
    MatchCollection m=r.Match(yourstring);

    -------------------------
    如果需要使用正则表达式匹配Unicode字符的话... 
    这里是几个主要非英文语系字符范围(google上找到的):

    2E80~33FFh:中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符,中日韩的符号、标点、带圈或带括符文数字、月份,以及日本的假名组合、单位、年号、月份、日期、时间等。

    3400~4DFFh:中日韩认同表意文字扩充A区,总计收容6,582个中日韩汉字。

    4E00~9FFFh:中日韩认同表意文字区,总计收容20,902个中日韩汉字。

    A000~A4FFh:彝族文字区,收容中国南方彝族文字和字根。

    AC00~D7FFh:韩文拼音组合字区,收容以韩文音符拼成的文字。

    F900~FAFFh:中日韩兼容表意文字区,总计收容302个中日韩汉字。

    FB00~FFFDh:文字表现形式区,收容组合拉丁文字、希伯来文、阿拉伯文、中日韩直式标点、小符号、半角符号、全角符号等。

    比如需要匹配所有中日韩非符号字符,那么正则表达式应该是^[\u3400-\u9FFF]+$
    理论上没错, 可是我到msn.co.ko随便复制了个韩文下来, 发现根本不对, 诡异
    再到msn.co.jp复制了个'お', 也不得行..

    然后把范围扩大到^[\u2E80-\u9FFF]+$, 这样倒是都通过了, 这个应该就是匹配中日韩文字的正则表达式了, 包括我們臺灣省還在盲目使用的繁體中文

    而关于中文的正则表达式, 应该是^[\u4E00-\u9FFF]+$, 和论坛里常被人提起的^[\u4E00-\u9FA5]+$很接近

    需要注意的是论坛里说的^[\u4E00-\u9FA5]+$这是专门用于匹配简体中文的正则表达式, 实际上繁体字也在里面, 我用测试器测试了下'中華人民共和國', 也通过了, 当然, ^[\u4E00-\u9FFF]+$也是一样的结果 
    源自:http://x.discuz.net/180642/viewspace-19070
    展开全文
  • Python中正则表达式re:re是提供正则表达式匹配操作的模块一、什么是正则表达式正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某个模式匹配,Python 自1.5版本起增加了re模块,它提供Perl风格...
  • re:re是提供正则表达式匹配操作的模块 一、什么是正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某个模式匹配,Python 自1.5版本起增加了re模块,它提供Perl风格的正则表达式。 ...
  • C#中的正则匹配和文本处理

    热门讨论 2021-05-15 08:33:52
    C#中的正则匹配和文本处理 1、简介 在博客之前上章讲了String类和StringBuilder类。尽管String类和StringBuilder类提供了一套方法用来处理基于字符串的数据, 但是正则表达式和支持它的类却为字符串处理任务提供了更...
  • 01正则匹配(1)

    2017-06-11 18:38:09
    #在用Python进行正则匹配之前,我们先看一下python中正则的正确打开方式 #1.引入正则模块(re) import re #2.编写匹配规则 patten=re.compile("a.b") #.代表任意字符 #3.匹配 word_one="a.bccccdd" res_one=patten....
  • vim (2)正则匹配

    2018-09-28 20:15:31
    删除包含特定字符的行: 1. 全局删除匹配到的行 :g/pattern/d ... 正则匹配: 一、使用正则表达式的命令 使用正则表达式的命令最常见的就是 / (搜索)命令。其格式如下: /正则表达式...
  • 一、生成正则表达式 1.头文件 #include <bits/stdc++.h> 注意.h不可少!...例子:如果给定字符串S="Hello",现在要匹配用户输入的字符串T是否包含S字符串"Hello",例如"78495Hello8984"包含了"He...
  • 1、常用正则表达式 一个或多个汉字 :^[\u0391-\uFFE5]+$ 邮政编码:^[1-9]\d{5}$ QQ号码:^[1-9]\d{4,10}$ 邮箱:^[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-z0-9]-*){1,}\.){1,3}[a-zA-z\-]{1,}$ 用户名(字母开头 + ...
  • 正则匹配ts的引用

    2018-12-07 11:03:00
    ts文件引入代码如下: import { IView, GridView, Sizing as GridViewSizing, Box, IGridViewStyles } from './gridview';...使用的匹配正则表达式为: (import|export){1}.*from.*; 正则中小括号,中...
  • Hive详解之正则匹配

    千次阅读 2019-10-05 11:14:30
    在Hive中还有一项比较好用的功能,也是非常重要的功能:在建表的时候可以不指定表的行、字段、列的分隔方式,通过给表指定一段正则表达式,让Hive自动去匹配; 1、创建表 CREATE TABLE logtbl( host STRING, ...
  • Python实现文本正则匹配与日期识别

    千次阅读 2019-04-27 20:52:47
    Python实现文本简单正则匹配代码如下: #例1:获取包含'爬虫'这个关键词的句子 #匹配字符串用re.search的方法——re.search(reger,string) import re text_string = '文本最重要的来源无疑是网络。我们要把网络中...
  • Last-Modified: 2019年5月10日16:23:19译者注:本文是面向0正则基础的phper, 很多正则的高级使用都没有涉及到, 仅仅是一份简单的入门.对于有基础的, 可直接查看本文末尾的正则表达式语法快速一览表(图) (不涉及修饰符...
  • 目录一、需求二、分析1、共同特征2、详细分析1、匹配数字2、匹配英文问号:0个或1个3、匹配量词中的一个【桶,盒,对,只,根,条】4、匹配空格0个或多个5、针对汉字匹配 /u3、正则表达式三、代码四、打印五、正则...
  • 由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。 ###构造...
  • regexp_extract函数 语法: regexp_extract(string subject, string pattern, int index) 返回值: string 说明: 将字符串subject按照pattern正则表达式的...第二参数: 需要匹配正则表达式 第三个参数:
  • word正则的使用

    千次阅读 2019-07-13 15:11:47
    Word中类似正则匹配的查找替换通配符的使用详解 Word查找栏代码·通配符一览表 序号 清除使用通配符复选框 勾选使用通配符复选框 特殊字符 ...
  • * 6-20位 字母、数字、符号最少任意两种组合 * 字母、数字 * 字母、符号 * 数字、符号 * 字母、数字、符号 */ public class PasswordUtils { public static void main(String[] args) { String special...
  • 正则匹配多个空格 换行

    千次阅读 2015-06-20 14:05:04
    .版本 2 .支持库 RegEx正则表达式....返回内容 = 正则表达式.替换 (返回内容, “”, 1, , 真, 真) ’ 正则表达式.创建 (“\r”, 假) ’ 返回内容 = 正则表达式.替换 (返回内容, “”, 1, , 真, 真)
  • 常用JS正则匹配函数

    万次阅读 2011-05-26 20:05:00
    function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/;...//校验密码:只能输入6-20个字母、数字、下划线 function isPasswd(s) { var patrn=/^(/w){6,20}$/; if (!patrn.exec(s)) ret
  • 提取字符串里的数字 代码如下 import re str1='abdb212jfd' str2=re.findall('db(.*?)j',str1) #括号内是要提取的内容 print(str2[0]) --->212 str3=re.finditer('\d',str1) print(str3) ----> <callable_...
  • 正则匹配的方法,替换掉目标字符串为空,具体示例如下: s = "我是一个人(中国人)aaa[真的]bbbb{确定}" a = re.sub(r"\((.*?)\)|\{(.*?)\}|\[(.*?)\]", "", s) print(a) output: 我是一个人aaabbbb 加上...
  • 1,\Q \E的含义 \Q 取消所有元字符的含义直到遇见 \E 为止,说得通俗一点,就是说,Perl 中有些字符在模式匹配...正则表达式的变量包括$,其中包含任何的最后匹配的分组匹配;$&, 其中包含整个匹配的字符串,$`,它包

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,331
精华内容 10,932
关键字:

word正则匹配数字