zoukankan      html  css  js  c++  java
  • Java:正则表达式

    正则表达式

    正则表达式(Regular Expression、regex),及描述某种规则的表达式。通常被用来检索、替换符合某个模式(规则)的文本
    很多编程语言支持正则表达式,Java只是其中一种


    正则表达式的基本元素

    字符 含义 描述
    .(点) 一个字符的通配符 能和回车符外的任何字符匹配匹配除“ ”和" "之外的任何单个字符。要匹配包括“ ”和" "在内的任何字符,请使用像“[sS]”的模式
    [ ] 字符集 能和括号中描述的范围内任何一个字符匹配,‘-’连接范围的起止,闭区间
    [ ^ ] 排斥性字符集 与上一项相反
    ^ 起始位置 定位到一行的起始处并向后匹配
    $ 结束位置 定位到一行的结尾处并向前匹配
     单词边界 匹配[a-zA-Z_0-9]中的字符,及英文大小写字母与阿拉伯数字
    B 非单词边界 [ ^ ]
    s 空白符 相当于[ x0Bf ] // x0B空格符
    w 单词字符 [B]
    W 非单词字符 []
    {n} 匹配次数 表明左边匹配符匹配n数
    ( ) 按照子表达式分组
    转义 如 
    | 逻辑或 a|b 匹配a或者b

    常用等价 / 简写

    ? → {0,1}
    * → {0,}
    + → {1,}
    d → [0-9]
    D → [^0-9]
    [A,H,T,W] → A|H|T|W

    //简写并非所有语言都支持


    语法
    正则表达式构成:字符{数量}位置

    //基础语法  			 "^([]{})([]{})([]{})$"
    //"开始([包含内容]{长度})([包含内容]{长度})([包含内容]{长度})结束"
    
    
    

    记录一个问题

    split使用正则表达式实现
    String [] strings = new Scanner(System.in).nextLine().split("+");
    提示dangling meta character问题出现
    正确使用方式为
    String [] strings = new Scanner(System.in).nextLine().split("\+");如同转义字符
    String.replace()replaceAll()等等同理
    其他正则字符以此类推
    

    2018/8/2

  • 相关阅读:
    UVA 401 回文词
    n的阶乘分解成素数幂的积
    DSSM问答匹配模型
    Enhanced LSTM for Natural Language Inference
    Bidirectional LSTM-CRF Models for Sequence Tagging
    Attention Is All You Need 学习笔记
    BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
    C++学习笔记(四)
    C++学习笔记(三)
    java学习笔记(七)
  • 原文地址:https://www.cnblogs.com/kafm/p/12721852.html
Copyright © 2011-2022 走看看