加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达

发布时间:2020-12-14 06:13:58 所属栏目:百科 来源:网络整理
导读:字符类 [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

字符类

  [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      ? 匹配任意非数字的字符

  h? ? ? ? ? ? ? ? ? ? ? 匹配水平空白字符(比如t)

  H     ? ?匹配非水平空白字符[^h]

  s     ? ? ? 匹配任意空白符

  S     ? ? ? 匹配任意不是空白符的字符

  v     ? ? ? 匹配垂直空白字符(比如n)

  V     ? ? ?匹配非垂直空白字符[^v]

  w     ? ? ?匹配字母或数字或下划线,等价于[a-zA-Z_0-9]

  W     ? ? 匹配任意不是字母、数字、下划线、汉字的字符,等价于[^a-zA-Z_0-9]


边界匹配器

  ^        匹配字符串的开始

  $        匹配字符串的结束

  b       匹配单词的开始或结束

  B      ? ?匹配不是以单词开头或结束的位置

  G      前一个匹配的结束

  []       显示限制条件中的任意一个字符


显示次数

  *       ? 重复零次或更多次

  ?        重复零次或一次

  +        重复一次或更多次  

  {n}      ? 重复N次

  {n,}     ? ? 重复N到多次

  {n,m}      重复N到M次

示例

  ◆ ^为限制开头

    ^java    条件限制为以Java为开头字符

  ◆ $为限制结尾

    java$   ?条件限制为以java为结尾字符

  ◆ . 条件限制除/n以外任意一个单独字符

    java..  ? 条件限制为java后除换行外任意两个字符

  ◆ 在限制条件为特定字符出现0次以上时,可以使用「*」

    J*   ? ? 0个以上J

    .*    ? 0个以上任意字符

    J.*D    J与D之间0个以上任意字符

  ◆ 在限制条件为特定字符出现1次以上时,可以使用「+」

    J+     1个以上J

    .+      1个以上任意字符

    J.+D    J与D之间1个以上任意字符

  ◆ 在限制条件为特定字符出现有0或1次以上时,可以使用「?」

    JA?    J或者JA出现

  ◆ 限制为连续出现指定次数字符「{a}」

    J{2}    JJ

    J{3}    JJJ

  ◆ 文字a个以上,并且「{a,}」

    J{3,}   ? JJJ,JJJJ,JJJJJ,???(3次以上J并存)

  ◆ 文字个以上,b个以下「{a,b}」

    J{3,5}   JJJ或JJJJ或JJJJJ

  ◆ 两者取一「|」

    J|A   ??  J或A

    Java|Hello  ?Java或Hello

  ◆?「()」中规定一个组合类型

    查询<a href=/"index.html/">index</a>中<a href></a>间的数据,可写作<a.*href=/".*/">(.+?)</a>

?

Demo

方法一:

1     String rex = "[a-z[d-m]]"; 
2     Pattern p = Pattern.compile(rex);  
3     Matcher matcher = p.matcher("f");  
4     boolean matches = matcher.matches();

?

方法二:

1     String rex = "[a-z[d-m]]";     
2     boolean matche = Pattern.matches(rex,"d");

?

PS:

Pattern API(Java Platform SE 8)网址:https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读