跳至主要内容

正则表达式30分钟教程

原文网址

学习笔记

元字符

  • .      匹配除换行符以外的任意字符
  • \w   匹配字母或数字或下划线或汉字
  • \s    匹配任意的空白符
  • \d    匹配数字
  • \b    匹配单词的开始或结束
  • ^    匹配字符串的开始
  • $    匹配字符串的结束

字符转义

  • 查找元字符本身,需要用\取消这些词的特殊意义,如\.  \*  \\等

重复(限定符)

  • *    重复零次或更多次
  • +    重复一次或更多次
  • ?    重复零次或一次
  • {n}    重复n次
  • {n,}    重复n次或更多次
  • {n,m}    重复n到m次

字符类

  • [aeiou]就匹配任何一个英文元音字母
  • [.?!]  匹配标点符号(.或?或!)
  • [0-9]=\d    [a-z0-9A-Z_]=\w
  • 理解这个,  \(?0\d{2}[) -]?\d{8}

分枝条件

  • 指正则表达式有几种规则,满足之一就算匹配,规则用 | 隔开
    • 0\d{2}-\d{8}|0\d{3}-\d{7}     匹配两种以连字号分隔的电话号码:一种三位区号,8位本地号,一种是4位区号,7位本地号
    • \(?0\d{2}\)?[- ]?\d{8}|0\d{2}[- ]?\d{8}     匹配3位区号的电话号码,其中区号可以用小括号括起来,也可不用,区号与本地号间可用连字号或空格间隔,也可以没有间隔。可以试试用分枝条件把这个表达式扩展成也支持4位区号
    • \d{5}-\d{4}|\d{5}    匹配美国的邮政编码,5位数字或用连字号间隔的9位数字,注意顺序(因为测试从左至右,满足分枝条件之一就不再管其他)

分组

  • 重复多个字符时建议使用分组,即使用小括号指定子表达式
    • (\d{1,3}\.){3}\d{1,3}    \d{1,3}匹配1到3位的数字,(\d{1,3}\.){3}匹配三位数字加上一个英文句号(这个整体)重复3次,最后再加上一个一到三位的数字(\d{1,3})
    • 自行理解(IP)    ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

反义

  • 查找不属于某个能简单定义字符类的字符
    • \W    匹配任意不是字母,数字,下划线,汉字的字符
    • \S    匹配任意不是空白符的字符
    • \D    匹配任意非数字的字符
    • \B    匹配不是单词开头或结束的位置
    • [^x]    匹配除了x以外的任意字符
    • [^aeiou]    匹配除了aeiou这几个字母以外的任意字符
  • 例子
    • \S+    匹配不包含空白符的字符串
    • <a[^>]+>    匹配用尖括号括起来的以a开头的字符串

后向引用

  • 小括号指定一个子表达式,匹配这个子表达式的文本,可以在表达式或是其他程序中做其他后续处理,默认情况下,每个分组拥有一个组号,从左向右,1,2,......

Popular posts from 产品随想的博客

Interview with Steve Jobs, WGBH, 1990

Interviewer: what is it about this machine? Why is this machine so interesting? Why has it been so influential? Jobs: Ah ahm, I'll give you my point of view on it. I remember reading a magazine article a long time ago ah when I was ah twelve years ago maybe, in I think it was Scientific American . I'm not sure. And the article ahm proposed to measure the efficiency of locomotion for ah lots of species on planet earth to see which species was the most efficient at getting from point A to point B. Ah and they measured the kilocalories that each one expended. So ah they ranked them all and I remember that ahm...ah the Condor, Condor was the most efficient at [CLEARS THROAT] getting from point A to point B. And humankind, the crown of creation came in with a rather unimpressive showing about a third of the way down...

《逢いたくていま》──仁医主题曲

原始链接: 听歌学日语 | 唱哭很多人的《逢いたくていま》 あ いたくていま - MISIA 现在好想见你- MISIA 初 はじ めて 出会 であ った 日 ひ のこと  覚 おぼ えてますか 第一次相遇的那天 你是不是还记得呢?   過 す ぎ 行 ゆ く 日 ひ の 思 おも い 出 で を  忘 わす れずにいて 那些过去日子的回忆 我一直没有有忘记   あなたが 見 み つめた  全 すべ てを  感 かん じていたくて 凝视着你 这一切的全部 我都想要感觉   空 そら を 見上 みあ げた 抬头仰望天空   今 いま はそこで  私 わたし を  見守 みまも っているの? 你到现在是否还在那里守护着我?   教 おし えて… 请你告诉我 今 いま   逢 あ いたいあなたに 现在好想见你 伝 つた えたい 事 こと がたくさんある 有好多想要告訴你的事情   ねえ  逢 あ いたい  逢 あ いたい 呐 好想见你 好想见你   気 き づけば  面影 おもかげ   探 さが して  悲 かな しくて 如果能注意到的话 你的面容 是在寻找着 还是悲伤着 どこにいるの?  抱 だ きしめてよ 到底在哪里呢? 好想抱紧你 私 わたし はここにいるよ ずっと 我 会一直在这里 一直等你 もう 二度 にど と 逢 あ えないことを  知 し っていたなら 如果能早点知道 已经再也无法相见   繋 つな いだ 手 て をいつまでも  離 はな さずにいた 我会牵在一起的手 永远都不会放开   『ここにいて』と そう 素直 すなお に  泣 な いていたなら 如果当初诚实哭泣地告诉你『留在我身边』的话   今 いま もあなたは  変 か わらぬまま 现在的你是否也依然不变地   私 わたし の 隣 とな りで ...

Bob Dylan – Facts. NobelPrize.org

  When I first received this Nobel Prize for Literature, I got to wondering exactly how my songs related to literature. I wanted to reflect on it and see where the connection was. I’m going to try to articulate that to you. And most likely it will go in a roundabout way, but I hope what I say will be worthwhile and purposeful. If I was to go back to the dawning of it all, I guess I’d have to start with Buddy Holly. Buddy died when I was about eighteen and he was twenty-two. From the moment I first heard him, I felt akin. I felt related, like he was an older brother. I even thought I resembled him. Buddy played the music that I loved – the music I grew up on: country western, rock ‘n’ roll, and rhythm and blues. Three separate strands of music that he intertwined and infused into one genre. One brand. And Buddy wrote songs – songs that had beautiful melodies and imaginative verses. And he sang great – sang in more than a few voices. He was the archetype. Everything I w...

产品随想 | 周刊 第101期:木叶飞舞之处,火亦生生不息

How to Install Fonts on Linux: A Comprehensive Guide   https://linuxiac.com/how-to-install-fonts-on-linux/ 在伊丽莎白一世的时代的英国,如果人们想要盗版剧本,就会派一个速写很快的人去看剧,那个人就会偷偷用速写把剧中所有的台词都记录下来。然后根据这些台词,几个看过这部戏剧会一起把这部戏剧中发生的一切都誊写下来。这种盗版剧本是很多戏剧现今存下来的唯一记录。 看到一个大爷总结普通人的一生:盛世之牛马,乱世之炮灰。 在现代晚期之前,总人口有九成以上都是农民,日出而作、胼手胝足。他们生产出来的多余食粮养活了一小撮的精英分子:国王、官员、战士、牧师、艺术家和思想家,但历史写的几乎全是这些人的故事。于是,历史只告诉了我们极少数的人在做些什么,而其他绝大多数人的生活就是不停挑水耕田。 模拟时代的黑胶与磁带   https://sspai.com/post/81162 黑胶与磁带来承载声音,手机照片来承载画面,视频来承载动态影像 一家店需要怎样的 BGM   https://mp.weixin.qq.com/s/F_CluKDRSswDeSMIxKWRFA 我们喜爱音乐,是因为音乐里,能体现出心意 ONE REVOLUTION PER MINUTE - a short film by Erik Wernquist   https://www.youtube.com/watch?v=iiPmgW21rwY 他有人生最可宝贵的一个德性:一种永久新鲜的好奇心,不会给时间冲淡而是与日俱增的。他没有相当的才具来利用这天赋,但多少有才具的人会羡慕他这种天赋!大半的人在二十岁或三十岁上就死了:一过这个年龄,他们只变了自己的影子;以后的生命不过是用来模仿自己,把以前真正有人味儿的时代所说的,所做的,所想的,所喜欢的,一天天的重复,而且重复的方式越来越机械,越来越脱腔走板。 ——《约翰.克里斯多朵夫》 【张一鸣】:《活法》、《少有人做的路》、《高效人士的七个习惯》、《基础生物学》对我影响比较大。 Consumer Electronics Hall of Fame   https://spectrum.ieee.org/special-reports/...

SU小技巧——秒出90°轴测图

 原文首发于角落工作室公众号,转载于 建筑学院 ,在此表示感谢 轴测图在分析图的使用中非常有用,尤其是90&deg;的轴测图,可以和旋转过的平面图完美契合,非常适合用于分析图的制作。 那么如何设置才能导出90&deg;的轴测图呢? 先来看看最终效果图 我们都知道SU中可以通过设置&ldquo;相机&rdquo;&mdash;&ldquo;平行投影&rdquo;来取消透视,但是无法设置轴测角度,通过下面教程的设置,可以交给大家如何设置90&deg;轴测图。 模型原图, &uarr;画一个正方形 &uarr;把这个正方形做成群组 &uarr;旋转45&deg;,在平面模式 &uarr;然后给这个正方形一个厚度,厚度多少随意。 &uarr;然后以侧面的下脚点为轴,向上旋转45&deg;。听起来很复杂,看图很明白 然后在&ldquo;相机&rdquo;里选&ldquo;平行投影&rdquo; &uarr;进入我们制作的长方体里,右键单击最上面的面,选择对齐视图。 &uarr;我们就得到了这个45-90-45的轴测图,删掉之前做的辅助立方体,我们还有一步工作要做。 &uarr;拖进PS,选择&ldquo;图像&rdquo;&mdash;&ldquo;图像大小&rdquo; 解锁掉宽度和高度中间的小拉锁,然后把高度乘以1.41 比如我这张图是669,就改成964,为什么要乘以1.41,因为是1:根号2的关系。呃,具体关系大家自行脑补。 &uarr;这样就OK了。 利用轴测图,我们可以进行分析图及复古风格图的PS,这就是下次的教程内容了,先贴一个预告图片

子网掩码和网关

零碎知识点 网关地址是具有路由功能的设备的IP地址 CIDR=IP + mask  是CIDR另一种表现形式 mask在计算中表示按位与的操作数,用来表示从目标中取出特定的二进制位 ARP表 路由表 理解子网掩码 59.78.40.110 59.78.40.126 255.255.255.128 59.78.39.162 59.78.39.254 255.255.255.0 59.78.42.41 59.78.42.254 255.255.255.0 协议作用 TCP/IP检测作用在2,3,4,7层 作用在1,2层:以太网,无线LAN,PPP...... 作用在3层:ARP, IPv4, IPv6, ICMP, IPsec 作用在4层:TCP,UDP,UDP-Lite,SCTP,DCCP 作用在5,6,7层:TELNET,SSH,HTTP,SMTP,POP,SSL/TLS,FTP,MIME,HTML,SNMP,MIB,SIP,RTP......