zoukankan      html  css  js  c++  java
  • 各种正则表达式实例用法

    选择

       用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。但用圆括号会有一个副作用,是相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。

       其中?:是非捕获元之一,还有两个非捕获元是?=和?!,这两个还有更多的含义,前者为正向预查,在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串,后者为负向预查,在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串。

    后向引用

       对一个正则表达式模式或部分模式两边添加圆括号将导致相关匹配存储到一个临时缓冲区中,所捕获的每个子匹配都按照在正则表达式模式中从左至右所遇到的内容 存储。存储子匹配的缓冲区编号从 1 开始,连续编号直至最大 99 个子表达式。每个缓冲区都可以使用 ‘ ’ 访问,其中 n 为一个标识特定缓冲区的一位或两位十进制数。

       可以使用非捕获元字符 ‘?:’, ‘?=’, or ‘?!’ 来忽略对相关匹配的保存。

     

    各种操作符的运算优先级

       相同优先级的从左到右进行运算,不同优先级的运算先高后低。各种操作符的优先级从高到低如下:

    操作符 描述

    转义符

    (), (?:), (?=), [] 圆括号和方括号

    *, +, ?, {n}, {n,}, {n,m} 限定符

    ^, $, anymetacharacter 位置和顺序直线电机原理

    | “或”操作

     

    部分例子

    正则表达式 说明

    /([a-z]+) 1/gi 一个单词连续出现的位置

    /(w+)://([^/:]+)(:d*)?([^# ]*)/ 将一个URL解析为协议、域、端口及相对路径

    /^(?:Chapter|Section) [1-9][0-9]{0,1}$/ 定位章节的位置

    /[-a-z]/ A至z共26个字母再加一个-号。

    /ter/ 可匹配chapter,而不能terminal

    /Bapt/ 可匹配Windows95或Windows98或WindowsNT,当找到一个匹配后,从Windows后面开始进行下一次

  • 相关阅读:
    【POJ
    【OpenJ_Bailian
    【Aizu
    【OpenJ_Bailian
    leetcode-746-Min Cost Climbing Stairs(动态规划)
    leetcode-744-Find Smallest Letter Greater Than Target(改进的二分查找)
    leetcode-728-Self Dividing Numbers
    leetcode-717-1-bit and 2-bit Characters
    leetcode-697-Degree of an Array
    leetcode-682-Baseball Game
  • 原文地址:https://www.cnblogs.com/furuihua/p/12187891.html
Copyright © 2011-2022 走看看