java正则表达式自我理解

正则表达式部分理解

  1. []
    使用[]表示匹配[]中括号中的一个字符,比如[abc],表示匹配a,b,c的任意一个字符,比如字符串中abcdabcdbd,会匹配到a,b,c,a,b,c,b,本意是只要出现一个字符就会匹配,不会合并到一起。
    而[abc]+,代表的是匹配abc一次或出现多次,abcdabcdbd这个例子中会匹配到abc,abc,b,也就说匹配的是a,b,c中的任何字符,出现一次或多次都匹配,如果是连续出现的会当做一个字符串匹配到。
  2. \
    \表示转移符号,常用的转义字符有\n(换行)、\t(水平制表符,一个Tab键)、\r(回车)、\b(退格)、\f(换页符)、\n(换行符)、\v(垂直制表符)、\’(代表 ’ )、\"(代表 “)、\\(代表 \)等等。正则表达式中还有表示的很多符号,这里就不一一举例了,下面的图片中给出了所有符号。
    这里要强调的是: 写正则表达式中,\b、\f、\n、\t、\r、\’ 这些都可以直接写,例如regex="\n";它就表示匹配一个换行符,而regex="\\n";也表示一个换行符,这两种写法都可以,但是对于一些符号就不能这样写了,例如:\w、\W、\B、\S、\s等等这些表示含义就不能这样写了,必须写成regex="\\w",才能使用,否则会报错。可以尝试一下,再复制这些转义字符时,会将\自动写成\\,所以在写正则表达式使用到带有\符号的,我建议使用\\表示。
    注意: 并不是说所有的转义字符都要写成\\,例如:匹配 " 字符,不能写成regex=”\\"",系统会将 " 转义为本身 " 含义,那么再java中上述这句话就会多出一个 " 。所以应该写成regex="\\\"",写成regex="\""也是可以的。
    如果要匹配的是 \ 的话,java中的表示为
    regex= " \\\\ "
    ,为四个 \ ,其中两个的含义表示转义字符,前两个代表转义符号 \ ,后两个代表另外一个符号 \ ,使用第一个 \ 再将第二个 \ 转义为本身字符 (这是我自己的理解,也许不正确,但是表示方式是对的),以此类推,如果要匹配\\,写法为regex=" \\\\\\\\ "
  3. |
    这个符号在正则表达式中表示或的意思,对于正则表达式中的x|y,表示匹配x或者y,这里的 | 运算的优先级要高于x,y,也就是说,对于regex = “[a][b]|[c][d]”,来说,它匹配的是出现ab或者出现cd的字符串,不是匹配a(b或者c)d这样的字符串。
  4. ?<=和?=
    这两个符号很重要,这算是个组合符号吧,匹配该某符号但不包含此符号,举个例子就能明白了,比如说要截取双引号(" “)中说的话,比如String str = “he says,\“Hello,Java!\” “;说出的话中通常使用”“号括起来,现在需要匹配说话的内容,正则表达式可以表示为regex = “(?<=\”)[^\”]+(?=\”)”;这其中的意思是:(?<=\")代表首先匹配 " ,但是不包含 " ,[^\"]+代表其次匹配一次或者多次匹配不是 " 的字符,(?=\")代表再次匹配 " ,但是不包含 " 。这样子就能截取中间的句子了。这两个符号一般配合使用,表示不包含匹配字符,一个在前,一个在后

注:以上所有的单引号双引号都是英文,由于转义的问题,许多符号变成了中文,看本博客的时候需要注意
暂时学到的用到的就只有这些,后边如果再注意到新的点,之后再补充。

正则表达式表

在这里插入图片描述

原创文章 16 获赞 10 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_30385099/article/details/105794123