正则表达式说明

  参考:http://blog.csdn.net/benjaminwu198818/archive/2009 /03/25/4023878.aspx
  一 正则表达式的正文。
  正则表达式使用特殊符号。我将各种符号以及其意义和用法简单的介绍一下:
  \ 表示在其后的文字是特殊符号。例:"n"和"n"是一致的。"\n"和换行符是一致的。
  ^ 和输入的开始一致。
  $ 以它前面的字符结尾的;例如:ab+$就可以被"abb","ab"匹配;
  * 与此符号之前的文字0次以上相同的话,两者一致。例:"zo*"和"zoo","z"都一致。
  + 与此符号之前的文字1次以上相同的话,两者一致。例:"zo*"和"zoo"一致,但和"z"不一致。
  ? 与此符号之前的文字0次或1次相同的话,两者一致。例:"a?ve?"和"never"的"ve"一致。
  . 为通配符,表示任何一个字符,例如:"a.c"可以匹配"anc"、"abc"、"acc";(与除了换行符的所有单一文字一致。)
  | 或运算符,例如:a[n|bc|cb]c可以匹配"abcc","anc","acbc";
  (正则表达式) 以所指定的表达式寻找一致文字。如果找到了,储存下来。一致的部分可以从Match方法获得的阵列中找到。
  x|y x和y的任意一方相同都会被认为一致。例:"(z|f)ood"和"zood","food"都一致。
  {n} n是0以上的整数。与其前的文字n次相同的话,两者一致。例:"o{2}"和"Bob"中的"o"不一致,与"foooood"中的前两个"o"一致。
  {n,} n是0以上的整数。与其之前的文字至少n次相同才一致。
  {,n} n是0以上的整数。匹配n到无穷次之间任意次数。
  {n,m} 两者整数。n至m范围的次数一致。
  [xyz] 与中括号中的文字任意一个相同都被认为一致。
  [^xyz] 与上面的相反。
  [a-z] 文字的范围,从"a"到"z"的文字都被认为一致。
  [^a-z] 与上面的相反。
  [] 在[]内可以指定要求匹配的字符,例如:"a[nbc]c"可以匹配"anc"、"abc"、"acc;但不可以匹配"ancc",a到z可以写成[a-z],0到9可以写成[0-9];
  例如:
  电话号码:024-84820482,02484820482(假设前面3或者4位,后面7或者8位,并且中间的减号可有可无)
  都是符合规定的,那么可以用如下格式来匹配:[0-9]{3,4} \-? [0-9]{7,8};
  -注意:"\"为转义字符,因为"-"在正则表达式用有代表一个范围的意义,例如:前面所说的[0-9],
  所以它需要转义字符"\"进行转义才可使用;
  \b 表示单词的末尾。例:"er\b"和"never"的"er"一致,但和"verb"的"er"不一致。
  \B 表示非单词的末尾。
  \d 表示数字。
  \D 表示非数字。
  \s 表示空格。
  \S 表示非空格。
  \w 表示所有字母数字。
  \W 表示非所有字母数字。
  解说:\d表示[0-9];\D表示[^0-9];\w表示[A-Z0-9];\W表示[^A-Z0-9];\s表示[\t\n\r\f],就是空格字符包括tab,空格等等;\S表示[^\t\n\r\f],就是非空格字符
  i (忽略大小写) /* 注意点 */
  g (全文查找出现的所有 pattern) /* 注意点 */
  gi (全文查找、忽略大小写)/* 注意点 */
  \num num应该被赋予一个正数。与已经储存的部分比较。例:"(.)\1"和任意的两个连续的相同
  文字一致。
  了解了这些之后看下面的注意点:
  String s1="111+222+333";
  System.out.println(s1.split("+").length);
  //输出时提示错误:
  java.util.regex.PatternSyntaxException: Dangling meta character '+' near index
  问题出现在加号附近,查询相关的资料显示,+、*、|、\等符号在正则表达示中有相应的不同意义。
  需要这样:
  String s1="111+222+333";
  System.out.println(s1.split("[+]").length);
  或是
  String s1="111+222+333";
  System.out.println(s1.split("\\+").length);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值