正则表达式语法

js正则表达式

回眸只為那壹抹淺笑 提交于 2020-01-22 19:39:41
1.正则表达式基本语法 两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。 例子如下: "^The":表示所有以"The"开始的字符串("There","The cat"等); "of despair$":表示所以以"of despair"结尾的字符串; "^abc$":表示开始和结尾都是"abc"的字符串——呵呵,只有"abc"自己了; "notice":表示任何包含"notice"的字符串。 像最后那个例子,如果你不使用两个特殊字符,你就在表示要查找的串在被查找串的任意部分——你并 不把它定位在某一个顶端。 其它还有'*','+'和'?'这三个符号,表示一个或一序列字符重复出现的次数。 它们分别表示“没有或更多”,“一次或更多”还有“没有或一次”。 下面是几个例子: "ab*":表示一个字符串有一个a后面跟着零个或若干个b。("a", "ab", "abbb",……); "ab+":表示一个字符串有一个a后面跟着至少一个b或者更多; "ab?":表示一个字符串有一个a后面跟着零个或者一个b; "a?b+$":表示在字符串的末尾有零个或一个a跟着一个或几个b。 你也可以使用范围,用大括号括起,用以表示重复次数的范围。 "ab{2}":表示一个字符串有一个a跟着2个b("abb"); "ab{2,}":表示一个字符串有一个a跟着至少2个b; "ab{3,5}

shell学习5.sed和awk

大城市里の小女人 提交于 2019-12-30 19:07:10
文本处理三剑客 在 Shell 下使用这些正则表达式处理文本最多的命令有下面几个工具: 命令 描述 grep 默认不支持扩展表达式,加-E 选项开启 ERE。如果不加-E 使用花括号要加转义符\{\} egrep 支持基础和扩展表达式 awk 支持 egrep 所有的正则表达式 sed 默认不支持扩展表达式,加-r 选项开启 ERE。如果不加-r 使用花括号要加转义符\{\} sed详解 1. 前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等。如果我们相对这些文件进行一些编辑查询等操作时,我们可能会想到一些vi,vim,cat,more等命令。但是这些命令效率不高,而在linux中有三种工具:顶配awk,中配sed,标配grep。使用这些工具,我们能够在达到同样效果的前提下节省大量的重复性工作,提高效率。 文件内容可以是来自文件,也可以直接来自键盘或者管道等标准输入,最后的结果默认情况下是显示到终端的屏幕上,但是也可以输出到文件中。 编辑文件也是这样,以前我们修改一个配置文件,需要移动光标到某一行,然后添加点文字,然后又移动光标到另一行,注释点东西…….可能修改一个配置文件下来需要花费数十分钟,还有可能改错了配置文件,又得返工。这还是一个配置文件,如果数十个数百个呢?因此当你学会了sed命令,你会发现利用它处理文件中的一系列修改是很有用的

Linux 三剑客 -- awk sed grep

吃可爱长大的小学妹 提交于 2019-12-30 18:51:30
本文由本人收集整理自互联网供自己与网友参考,参考文章均已列出,如有侵权,请告知! 顶配awk,中配sed,标配grep awk 参考 sed 参考 grep 参考 在线查看linux命令速记表 appropos , history two long didn't read 整理 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等。如果我们相对这些文件进行一些编辑查询等操作时,我们可能会想到一些vi,vim,cat,more等命令。但是这些命令效率不高,这就好比一块空地准备搭建房子,请了10个师傅拿着铁锹挖地基,花了一个月的时间才挖完,而另外一块空地则请了个挖土机,三下五除二就搞定了,这就是效率。而在linux中的“挖土机”有三种型号:顶配awk,中配sed,标配grep。使用这些工具,我们能够在达到同样效果的前提下节省大量的重复性工作,提高效率。 接下来我们就看一下sed的详细说明 sed 是Stream Editor(字符流编辑器)的缩写,简称流编辑器。什么是流?大家可以想象以下流水线,sed就像一个车间一样,文件中的每行字符都是原料,运到sed车间,然后经过一系列的加工处理,最后从流水线下来就变成货物了。 [root@master ~]# dirname /etc/rc.d/init.d/functions /etc/rc.d/init.d [root

PHP中的正则

﹥>﹥吖頭↗ 提交于 2019-12-30 09:09:10
概述 正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。 j简单的说就是 通过一些规定的符号和字符组合成的一种语法规则 其实,只有了解一种语言的正则使用,其他语言的正则使用起来,就相对简单些。文本主要围绕解决下面问题展开。 有哪些常用的转义字符 什么是限定符与定位符 什么是单词定位符 特殊字符有哪些 什么是逆向引用以及怎样使用逆向引用 匹配模式 php中怎样使用正则表达式 php中哪些方面需要用到正则 怎样进行邮箱匹配,url匹配,手机匹配 怎样使用正则替换字符串中某些字符 贪婪匹配与惰性匹配区别 正则表达式之回溯与固态分组 正则优缺点有哪些 正则表达式的基本知识汇总 行定位符(^与$) 行定位符是用来描述字符串的边界。 “$” 表示行结尾 “^” 表示行开始如 "^de" ,表示以de开头的字符串 "de$" ,表示以de结尾的字符串。 单词定界符 我们在查找的一个单词的时候,如an是否在一个字符串”gril and body”中存在,很明显如果匹配的话,an肯定是可以匹配字符串“gril and body”匹配到,怎样才能让其匹配单词,而不是单词的一部分呢?这时候,我们可以是哟个单词定界符\b。 \ban\b 去匹配”gril and body”的话,就会提示匹配不到。 当然还有一个大写的\B,它的意思,和\b正好相反

正则表达式语法

a 夏天 提交于 2019-12-25 22:46:18
字符 描述 \ 标记下一个字符是特殊字符或文字。例如,"n" 和字符 "n" 匹配。"\n" 则和换行字符匹配。序列 "\\" 和 "\" 匹配,而 "\(" 则和 "(" 匹配。 ^ 匹配输入的开头。 $ 匹配输入的末尾。 * 匹配前一个字符零或多次。例如,"zo*" 与 "z" 或 "zoo" 匹配。 + 匹配前一个字符一次或多次。例如,"zo+" 与 "zoo" 匹配,但和 "z" 不匹配。 ? 匹配前一个字符零或一次。例如,"a?ve?" 和 "never" 中的 "ve" 匹配。 . 匹配除换行字符外的任何单个字符。 ( pattern ) 匹配 pattern 并记住该匹配。匹配上的子字符串,可以使用 Item [0]...[n] ,来从生成的 Matches 集合中取回。要匹配圆括号字符 ( ),则需使用 "\(" 或 "\)"。 x | y 匹配 x 或 { n } n 是非负整数。共匹配 n { n ,} n 是一个非负整数。至少匹配 n 次。例如,"o{2,}" 和 "Bob" 中的 "o" 不匹配,但和 "foooood" 中的所有 o 匹配。"o{1,}" 与 "o+" 等效。"o{0,}" 和 "o*" 等效。 { n , m } m 和 n 是非负整数。至少匹配 n 次而至多匹配 m 次。例如,"o{1,3}" 和 "fooooood" 中的前三个 o

java 正则表达式语法

有些话、适合烂在心里 提交于 2019-12-18 10:57:51
[ java 正则表达式 ] ( https : / / www . runoob . com / java / java - regular - expressions . html ) 字符的取值范围 1. [ abc ] : 表示可能是a,可能是b,也可能是c。 2. [ ^ abc ] : 表示不是a , b , c中的任意一个 3. [ a - zA - Z ] : 表示是英文字母 4. [ 0 - 9 ] : 表示是数字 简洁的字符表示 . :匹配任意的字符 \d:表示数字 \D:表示非数字 \s:表示由空字符组成, [ \t\n\r\x\f ] \S:表示由非空字符组成, [ ^ \s ] \w:表示字母、数字、下划线, [ a - zA - Z0 - 9 _ ] \W:表示不是由字母、数字、下划线组成 数量表达式 1. ? : 表示出现 0 次或 1 次 2. + : 表示出现 1 次或多次 3. * : 表示出现 0 次、 1 次或多次 4. { n } :表示出现n次 5. { n , m } :表示出现n ~ m次 6. { n , } :表示出现n次或n次以上 来源: CSDN 作者: liu137756 链接: https://blog.csdn.net/liu137756/article/details/103592017

awk 用法(使用入门)

浪尽此生 提交于 2019-12-18 09:07:15
awk 用法:awk ' pattern {action} ' 变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输入域分隔符,默认为一个空格 RS 输入记录分隔符 NF 当前记录里域个数 NR 到目前为止记录数 OFS 输出域分隔符 ORS 输出记录分隔符 1、awk '/101/' file 显示文件file中包含101的匹配行。 awk '/101/,/105/' file awk '$1 == 5' file awk '$1 == "CT"' file 注意必须带双引号 awk '$1 * $2 >100 ' file awk '$2 >5 && $2<=15' file 2、awk '{print NR,NF,$1,$NF,}' file 显示文件file的当前记录号、域数和每一行的第一个和最后一个域。 awk '/101/ {print $1,$2 + 10}' file 显示文件file的匹配行的第一、二个域加10。 awk '/101/ {print $1$2}' file awk '/101/ {print $1 $2}' file 显示文件file的匹配行的第一、二个域,但显示时域中间没有分隔符。 3、df | awk '$4>1000000 ' 通过管道符获得输入,如

正则匹配原理之——逆序环视深入

感情迁移 提交于 2019-12-17 12:23:19
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前几天在 CSDN 论坛遇到这样一个问题: var str="8912341253789"; 需要将这个字符串中的重复的数字给去掉,也就是结果 89123457 。 首先需要说明的是,这种需求并不适合用正则来实现,至少,正则不是最好的实现方式。 这个问题本身不是本文讨论的重点,本文所要讨论的,主要是由这一问题的解决方案而引出的另一个正则匹配原理问题。 先看一下针对这一问题本身给出的解决方案。 string str = "8912341253789" ; Regex reg = new Regex ( @"((\d)\d*?)\2" ); while (str != (str = reg.Replace(str, "$1" ))) { } richTextBox2.Text = str; /*-------- 输出 -------- 89123457 */ 基于此有朋友提出另一个疑问,为什么使用下面的正则没有效果 “ (?<=(?<value>\d).*?)\k<value> ” 由此也引出本文所要讨论的逆序环视更深入的一些细节,涉及到逆序环视的匹配原理和匹配过程。前面的两篇博客中虽然也有介绍,但还不够深入,参考 正则基础之 —— 环视 和 正则应用之 —— 逆序环视探索

Python 常用模块介绍

自古美人都是妖i 提交于 2019-12-16 17:57:29
time模块 time模块 import time time模块的常用方法: 时间戳 从1970年1月1日0:00:00开始按秒计算 time.time() 格式化时间(显示当前时间) time.strftime(%Y-%m-%d %X) %Y 年 -%m月- %d日 %X秒 datetime模块 datetime模块 import datetime 返回当前时间 print(datetime.datetime.now()) 2019-8-19 15:05:30.000000 #当前时间 print(datetime.datetime.now()) #当前时间的加减 print(print(datetime.datetime.now() + datetime.timedelta(3))) 2019-8-19 15:05:30.000000 2019-8-22 15:05:30.000000 通过datetime.timedelta添加来达到当前日期的加减模式: 默认加减天数,hours加减小时,minutes加减分钟 random模块 random模块 import random random模块方法 random方法: #大于0且小于1的小数 print(random.random()) #想生成0且小于多少的小数只要在后面乘多少就好啦 print(random.random()

正则表达式生态备查文档

天大地大妈咪最大 提交于 2019-12-13 19:18:32
正则语法解析 .* 贪婪匹配 .*? 非贪婪匹配 比如:<H1>正则匹配</H1> 使用/<.*>/匹配的结果为:H1>正则匹配</H1。 使用/<.*?>/匹配结果为:H1。 推荐几款好用的正则用具 1、regulex 简介:正则可视化验证工具 站点: https://jex.im/regulex github: https://github.com/CJex/regulex 2、regexper 简介:和regulex类似,也是将正则可视化 站点: https://regexper.com/ github: https://github.com/javallone/regexper 3、regexpal 简介:校验正则是否匹配的测试工具 站点: https://www.regexpal.com/ 4、debuggex 简介:也是校验正则是否匹配的测试工具,不过感觉交互上比regexpal相对更有意思些 站点: https://www.debuggex.com/ 来源: https://www.cnblogs.com/xudengwei/p/12036091.html