字符类 [abc] a、b 或 c(简单类) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-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 非单词字符:[^\w] POSIX 字符类(仅 US-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}\x20] \p{Blank} 空格或制表符:[ \t] \p{Cntrl} 控制字符:[\x00-\x1F\x7F] \p{XDigit} 十六进制数字:[0-9a-fA-F] \p{Space} 空白字符:[ \t\n\x0B\f\r] Greedy 数量词 X? X,一次或一次也没有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n 次 X{n,} X,至少 n 次 X{n,m} X,至少 n 次,但是不超过m 次 边界匹配器 ^ 行的开头 $ 行的结尾 \b 单词边界 \B 非单词边界 \A 输入的开头 \G 上一个匹配的结尾 \Z 输入的结尾,仅用于最后的结束符(如果有的话) \z 输入的结尾 字符串匹配演示: booleanmatches(String regex) 告知此字符串是否匹配给定的正则表达式。 字符串切割演示: String[]split(String regex) 根据给定正则表达式的匹配拆分此字符串。 捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组: 1: ((A)(B(C))) 2: \A 3:(B(C)) 4: (C)
组零始终代表整个表达式。 之所以这样命名捕获组是因为在匹配中,保存了与这些组匹配的输入序列的每个子序列。捕获的子序列稍后可以通过 Back 引用在表达式中使用,也可以在匹配操作完成后从匹配器获取。 字符串替换演示: StringreplaceAll(String regex, String replacement) 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。 字符串获取演示: static Patterncompile(String regex) 将给定的正则表达式编译到模式中。 Matchermatcher(CharSequence input) 创建匹配给定输入与此模式的匹配器。 boolean find() 尝试查找与该模式匹配的输入序列的下一个子序列。 String group() 返回由以前匹配操作所匹配的输入子序列。 例子1: 例子2: 例子3: |
|
来自: hdzgx > 《VBA之正则表达式》