正则表达式的语法还包括指定选择项,对子表达式分组和引用前一子表达式的特殊字符.字符| 用于分隔供选择的字符.例如: /ab|cd|ef/ 匹配的是字符串 "ab",或者是字符串 "cd",又或者 "ef". /\d{3}|[a-z]{4}/ 匹配的是要么是一个三位数,要么是四个小写字母.

在正则表达式中括号具有几种作用:

1、它的主要作用是把单独的项目分组成子表达式,以便可以像处理一个独立的单元那种用 *、+或? 来处理那些项目.例如: /java(script) ?/ 匹配的是字符串 "java",其后既可以有 "script",也可以没有. / (ab|cd) + |ef) / 匹配的既可以是字符串 "ef",也可以是字符串"ab" 或者 "cd" 的一次或多次重复.

2、在正则表达式中,括号的第二个用途是在完整的模式中定义子模式。当一个正则表达式成功地和目标字符串相匹配时,可以从目标串中抽出和括号中的子模式相匹配的部分.例如,假定我们正在检索的模式是一个或多个字母后面跟随一位或多位数字,那么我们可以使用模式 / [a-z] + \ d+/.但是由于假定我们真正关心的是每个匹配尾部的数字,那么如果我们将模式的数字部分放在括号中 (/ [a-z] + (\d+)/) ,我们就可以从所检索到的任何匹配中抽取数字了,之后我们会对此进行解析的.

3、代括号的子表达式的另一个用途是,允许我们在同一正则表达式的后面引用前面的子表达式.这是通过在字符串 \ 后加一位或多位数字来实现的.数字指的是代括号的子表达式在正则表达式中的位置.例如: \1 引用的是第一个代括号的子表达式. \3 引用的是第三个代括号的子表达式.注意,由于子表达式可以嵌套在其它子表达式中,所以它的位置是被计数的左括号的位置.

转载于:https://www.cnblogs.com/hujiong/p/3535593.html

选择、分组、引用,指定匹配的位置相关推荐

  1. 1.19.7.Table API、SQL、数据类型、保留关键字、查询语句、指定查询、执行查询、语法、操作符、无排名输出优化、去重、分组窗口、时间属性、选择分组窗口的开始和结束时间戳、模式匹配

    1.19.7.Table API 1.19.8.SQL 1.19.8.1.概述 1.19.8.1.1.SQL 1.19.8.1.2.数据类型 1.19.8.1.3.保留关键字 1.19.8.2.查询语 ...

  2. 找到的程序集的清单定义与程序集引用不匹配

    我试图在C#Windows窗体应用程序(Visual Studio 2005)中运行一些单元测试,但出现以下错误: System.IO.FileLoadException:无法加载文件或程序集&quo ...

  3. python 正则表达式匹配的位置_python正则表达式匹配 模式匹配

    Python正则式的基本用法 初学Python,对Python的文字处理能力有很深的印象,除了str对象自带的一些方法外,就是正则表达式这个强大的模块了.但是对于初学者来说,要用好这个功能还是有点难度 ...

  4. php 正则匹配分组命名,正则表达式、分组、子匹配(子模式)、非捕获子匹配(子模式)...

    前面我们知道正则表达式有很多元字符表示匹配次数(量词),都是可以重复匹配前面出现的单个字符次数.有时候,我们可能需要匹配一组多个字符一起出现的次数.这个时候,我们需要分组了.就是用小括号来括起这些字符 ...

  5. 【转】[程序集清单定义与程序集引用不匹配]分析及解决

    转自:https://www.cnblogs.com/shuangzimuchangzhu/p/8572817.html 什么是程序集清单(Assembly Manifest)? 我们知道,在.net ...

  6. C#找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)”

    问题描述:这是在C#为后端遇到的一个问题,我在w3wp进程下调试的时候一个引用报了 这个异常. 查阅半天过后,大概了解到这是由于dll文件引用不匹配造成的. 解决方案:当你在管理工具里引用或者更新了新 ...

  7. R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置图例位置、移除图例)实战

    R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置图例位置.移除图例)实战 目录

  8. 未能加载文件或程序集“*****.dll”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。(异常来自HRESULT:0x80131040)

    未能加载文件或程序集"*****.dll"或它的某一个依赖项.找到的程序集清单定义与程序集引用不匹配.(异常来自HRESULT:0x80131040) 参考文章: (1)未能加载文 ...

  9. python位置参数_Python;argparse;如何指定位置参数的位置

    如何指定位置参数的位置?在 在下面的示例中,SCR&SCV参数显示在可选参数的末尾,我希望它们出现在开头.在#!/usr/bin/python import argparse ### Pars ...

最新文章

  1. Java笔记:成员变量,局部变量,类变量,实例变量以及注意事项
  2. lampapache+mysql+php
  3. BSTR、char*和CString转换
  4. tomcat 多人登录cpu占用过多_服务器被植入木马,CPU飙升200%
  5. Android之 RecyclerView,CardView 详解和相对应的上拉刷新下拉加载
  6. excel 复制数据 sql server 粘贴_win32 实现 excel 快速复制粘贴
  7. 《精通并发与Netty》学习笔记(02 - 服务端程序编写)
  8. easyui怎样实现textarea
  9. 毕业设计一周一记02
  10. Python+OpenGL基本图元绘制综合演示
  11. java读流方式,下载网络上的图片
  12. 【动态规划笔记】状压dp:旅行商问题
  13. SIP - FreeSwitch 安装 编译
  14. 143个相见恨晚的排行榜网站,总有一个用得着!
  15. 全新小说安装教程小程序源码
  16. 面试-数据知识点准备
  17. 分组加密中的四种模式(ECB、CBC、CFB、OFB)
  18. 因子类投资模型框架简介(待续)
  19. 操作系统——CPU调度
  20. 网站报错:Current request is not a multipart request

热门文章

  1. cpu计算机兼容,电脑升级之CPU篇:给CPU升级主要是兼容性问题,其他方法也用不上...
  2. 如何安装新linux内核,详解Debian系统中安装Linux新内核的流程
  3. android studio远程控制,Android Studio远程登录控制台缺少“网络”和“窗口”命令?...
  4. java解数独_java解数独
  5. linux 安装php 5.5_Linux下yum升级安装PHP 5.5
  6. OpenCV中的特征匹配(Feature Matching)
  7. 1024,不讲技术,来一套程序员续命操~
  8. 基于视频理解TSM和数据集Kinetics-400的视频行为识别
  9. OpenCV中图像Mat,二维指针和CxImage类之间的转换
  10. 2018目标检测最新算法+经典目标检测算法