zoukankan      html  css  js  c++  java
  • java正則表達式的坑

    java中正則表達式比較有意思,这里列举几个常见的坑

    1.[]符号,中括号表示当中的数据都是或的关系

    假设[\w+]是匹配条件 abc能否够匹配的到呢?

    首先\w(注意这里没有中括号)表示a-z A-Z 0-9 _多个字符组合,显然abc随意一个在里面的,后又有+号。表示有多个字符,所以abc能够匹配\w+

    可是[\w+]表示的意思是多个字符的或,注意是或。所以[\w+]等同于[a-z|A-Z|0-9|_],这里面的或仅仅有单个字符

    所以a或者b或者c都能够匹配[\w+],可是abc不能够,怎样让abc能够匹配呢非常easy仅仅须要将条件外面加上+号标识多个字符就能够了。

    2.转义符号

    java转义非常麻烦各种\,须要细致理解

    java中是没有意义的,在字符串中你出现一个,编译器会告诉你是错误的,不能这样

    所以java中\表示一个。在正則表達式匹配中如匹配数字写的是\d事实上是\表示一个最后的效果是d.

    这个时候有人要问了,我仅仅要匹配d这个字符而不是匹配数字怎么办。这个时候须要在加一个转义符。告诉大家这个字符不是d表示的数字,而是详细字符串d,详细的结果是非常蛋疼的在加上一个转义字符\。所以会出现\\d,java会解析成\d,表示对d在做转义,就是单纯的d。

    再比方[\]这个简单的表达式,假设你去调用则会报错。为什么?

    由于java会觉得你仅仅传了一个转义符。而单独的转义符是没有意义的。假设你要匹配号,须要的表达式是\\前面的\表示转义符号,后面的\表示真正匹配的号。- -!

    java转义字符关键是两个\表示一个。会让人费解。须要注意。

  • 相关阅读:
    vue的环境的搭建
    rem
    web前端面试题总结
    vue遇到的一些问题
    栅格布局的理解
    利用node的http模块创建一个简单的http服务器
    node 常用的一些终端的命令的快捷键
    node 环境变量设置方法
    CentOS7.5搭建Hadoop2.7.6完全分布式集群
    UUID做主键,好还是不好?这是个问题
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5113152.html
Copyright © 2011-2022 走看看