浅析正则表达式

所谓的正则表达式,就是用一类元字符(不表示本身意义,而表示统配或其他意义),组

合其他字符所编数出来的,能够匹配符合条件的字符。
  正则表达式有基本正则表达式和扩展正则表达式两大类,
  下面给大家介绍一下基本正则表达式和扩展正则表达式的一些常用的字符,

基本正则表达式:

^        锚定行首的符合条件的内容
  $        锚定行尾的符合条件的内容
  ^$       表示空白行
  .        匹配任意单个字符
  *        匹配进挨在其前面的字符任意次
  .*       匹配任意长度的任意字符
  []       匹配指定范围内的任意字符
  [^]      匹配指定范围外的任意字符
  \?       匹配紧挨在其前面的字0次或1次
  \{m,n\}  匹配其前面的字符至少m次,至多n次
  \{0,n\}  匹配其前面的字符0-n次
  \{m,\}   匹配其前面的字符至少m次
  \{m\}    精确匹配m次
  \<       锚定词首
  \>       锚定词尾
  \(\)     分组

grep的常用选项

--color=auto   自动为匹配字符添加颜色
  -v             反向选取,只显示不符合模式的行
  -o             只显示被模式匹配但的字符串,而不是整个行
  -i             不区分字符大小写
  -A  n          显示匹配到的行时,顺便显示其后面的n个行
  -B  n          显示前面的n行
  -C  n          显示后面的n行
  -E             使用扩展的正则表达式    grep -E = egrep

扩展正则表达式(在这里至列出不同之处)

?            出现了0次或1次 正则表达式为\?
   {m,n}         匹配前边字符最少m次,最多n次
   ()            分组,用法与grep类似
   a|b           二选一

1,锚定/etc/passwd文件中行首为root的行
     grep  “^root” /etc/passwd
2,锚定/etc/passwd文件行尾为sh的行
     grep “sh$” /etc/passwd
3,查找空白行
     grep “^$” /etc/passwd
4,匹配a后面跟了任意单个字符的行
     grep “a.” /etc/passwd
5,匹配a后面跟了任意长度字符的行
     grep “a*” /etc/passwd
4,匹配a后面跟了任意长度的任意字符,再跟上b的行
     grep “a.*b” /etc/passwd
5,匹配a后面跟了任意个一数字后又跟了任意一个字母的行
     grep “a[0-9][a-zA-Z]” /etc/passwd
6,匹配a后面跟了任意一个数字或字母的行
     grep “a[0-9a-zA-Z]” /etc/passwd
7,匹配0或1个a后面跟了个b的行
     grep “a\?b” /etc/passwd
8,匹配最少一个a,最多3个a后面跟了一个b的行
     grep “a\{1,3\}b” /etc/passwd
9,锚定单词admin的行
     grep “\<admin\>” /etc/passwd
10,匹配自少出现一次ad,最多出现3次ad的行
     grep “\(ab\)\{1,3\}” /etc/passwd

(0)

相关推荐

  • 如何实现正则表达式的JavaScript的代码高亮

    今天想改一下JS的高亮的配色,憋了一下午憋出了这个这个正则表达式. 下面这老长老长了的玩意儿是个正则表达式,看到了别吓坏了. 复制代码 代码如下: /(\/\/.*|\/\*[\S\s]+?\*\/)|((["'])(?:\\.|[^\\\n])*?\3)|\b(break|continue|do|for|in|function|if|else|return|switch|this|throw|try|catch|finally|var|while|with|case|new|typeof|in

  • 几个小例子教你如何实现正则表达式highlight高亮

    程序员在编写代码的时候少不了和字符串以及"查询"打交道,两者的交集中有一个叫做正则表达式的的东西,这家伙用好了可以提高编程效率,用不好的话...你可以先去好好学一学. 关于正则的使用,举个简单的例子: 复制代码 代码如下: var m = location.href.match(/(\w+:)\/{0,3}([^\/]+)(?:(\/[^\?#]*))?(?:(\?[^#]+|.+))?(?:(#.*))?/);var res = {    protocol: m[1],    hos

  • PHP函数preg_match_all正则表达式的基本使用详细解析

    了解正则表达式之前,须要掌握一些常用的正则表达式的基础知识,这些如果能记得最好记得,记不住须要用的时候能查到就行,就多个特殊字符,所以说正则表达式玩的就是特殊,具体大家可以查看更加细致的说明. preg_match_all函数具体说明大家可以查看PHP手册,本文运用 preg_match_all用于测试正则表达的效果. 实例代码: 复制代码 代码如下: $html = '<div id="biuuu">jb51.net</div><div id="

  • 浅析正则表达式中的lastIndex以及预查

    依次写出下列输出内容. var reg1 = /a/; var reg2 = /a/g; console.log(reg1.test('abcabc')); // true console.log(reg1.test('abcabc')); // true console.log(reg1.test('abcabc')); // true console.log(reg1.test('abcabc')); // true console.log(reg2.test('abcabc')); //

  • 深入浅析正则表达式re模块(部分)

    正则表达式: 官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑. ​ 什么是正则表达式: 一套规则 - 匹配字符串的 ​ 谈到正则,就只和字符串相关了.我们要考虑的是在同一个位置上可以出现的字符的范围. ​ 正则表达式能做什么: •1.检测一个输入的字符串是否合法 -- web开发项目 表单验证 ◦用户输入一个内容的时候,我们要提前做检测

  • 浅析正则表达式-替换原则(.NET) 图文

    一.开篇 最近经常用到替换的东西所以就出来整理下,这里要分享的是正则表达式里面的替换原则,首先要声明的是这里提及到的替换原则是.NET里面的正则表达式的替换原则.先看一下替换的定义替换是只能在替换模式中识别的语言元素. 它们使用正则表达式模式定义全部或部分用于替换输入字符串中的匹配文本的文本. 替换模式可以包含一个或多个替换以及本文字符.其实个人总结的替换的大致是这样的,替换的内容永远都是原文本的内容,通过正则表达式匹配出来文本,来通过组名或者组号来进行对原文本的替换,替换的位置是用正则表达式匹

  • 浅析正则表达式

    所谓的正则表达式,就是用一类元字符(不表示本身意义,而表示统配或其他意义),组 合其他字符所编数出来的,能够匹配符合条件的字符.  正则表达式有基本正则表达式和扩展正则表达式两大类,  下面给大家介绍一下基本正则表达式和扩展正则表达式的一些常用的字符, 基本正则表达式: ^        锚定行首的符合条件的内容  $        锚定行尾的符合条件的内容  ^$       表示空白行  .        匹配任意单个字符  *        匹配进挨在其前面的字符任意次  .*      

  • 浅析正则表达式 元字符和普通字符

    要想学会正则表达式,理解元字符和普通字符是一个必须攻克的难关.不用刻意记.下面小编给大家带来了正则表达式 元字符和普通字符的相关知识,一起看看吧. 根据正则表达式语法规则,正则表达式的匹配模式是由一系列的字符构成的. 一.普通字符: 大多数的字符仅能够描述它们本身,这些字符称作普通字符,例如所有的字母和数字. 也就是说普通字符只能够匹配字符串中与它们相同的字符. 二.元字符: 由于普通字符只能匹配与自身相同的字符,那么正则表达式的灵活性和强大的匹配功能就不能完全展现,于是正则表达式中规定了一系列

  • 深入浅析正则表达式中的\B和\b

    对于正则表达式的中\B和\b 有些地方会出现弄不懂的情况 或许你看了下面这篇博客 你就能够对\B和\b认识加深了 根据查看API可以知道 \B和\b都是边界匹配符 先说说\b这个单词边界吧!竟然想了解 首先必须清楚什么叫单词边界!我们可以以\b为分割来探究一下 单词边界 import java.util.regex.Matcher; import java.util.regex.Pattern; public class matcher1 { public static void main(St

  • 深入浅析正则表达式 捕获组

    捕获组(capturing group)是正则表达式里比较常用,也是比较重要的概念,我个人觉得掌握这部分的知识是非常重要的. 这篇文章内容不会很深入,但是尽量做到简单易懂又全面.接下来的内容主要是围绕以下7个点: 1: () 捕获组 2: (?:) non capturing group 3: (?=) positive lookahead 4: (?!) negative lookahead 5: (?<=) positive lookbehind 6: (?<!) negative loo

  • 深入浅析正则表达式与通配符

    1.特殊符号 ''     所见即所得 ""     特殊符号会被解析运行 ``     == $() 先运行里面的命令 把结果留下 >     重定向符号        先清空文件的内容 然后追加文件的最后 >>    追加重定向        追加文件的最后 2>    错误重定向        只有错误的信息 才会通过这个漏洞进入文件中 2>>   错误追加重定向 ~     当前用户的家目录 !     查找并运行历史命令 !awk  包含a

  • 浅析lastIndex对正则表达式结果的影响

    前言 今天遇到一个问题,用正则表达式去检查同一个字符串时,交替返回true和false.无奈之下,重新翻了翻权威指南,发现罪魁祸首原来是lastIndex.可在控制台尝试下 let reg = /[\d]/g //undefined reg.test(1) //true reg.test(1) //false lastIndex lastIndex在权威指南中是如下解释:它是一个可读/写的整数.如果匹配模式带有g修饰符,这个属性存储在整个字符串中下次索引的开始位置,这个属性会被exec()和te

  • 正则表达式 \D 元字符(等价于"[^0-9]")

    \D元字符可以匹配非数字字符,等价于"[^0-9]". 语法结构: (1).构造函数方式: new RegExp("\\D") (2).对象直接量方式: /\D/ 浏览器支持: (1).IE浏览器支持此方法. (2).火狐浏览器支持此方法. (3).谷歌浏览器支持此方法. (4).opera浏览器支持此方法. (5).safria浏览器支持此方法. 实例代码: var str="I love antzone \n and you 360"; va

随机推荐