正则表达式规则

在词法分析中,我们需要利用正则表达式来匹配特定的字符串,因此需要了解常用的正则表达式规则

规则

. 匹配除换行符(\n)以外的任意单字符
[] 字符类,可以匹配方括号中的任意一个字符,如果字符类中的第一个字符为^,则匹配除方括号内字符以外的任何字符,有点类似于操作符中“非”的意思。字符里的破折号表示字符的范围,例如[0-9],意思是要匹配[0123456789],[a-z]意思是要匹配任意小写字母。
^ 如果是正则表达式的第一个字符就匹配行首,在[]中表示补集
$ 如果它是正则表达式的最后一个字符就匹配行尾
{} 当花括号中带有一个或者两个数字时,它就表示前一个模式的最小和最大次数,例如 A{1,3}表示匹配一到三个字母A,而0{5}匹配00000,当花括号中带有名字时,它指向以这个名字命名的模式
\ 用来表示元字符本身和一部分常用的C语言转义序列,例如\n表示换行符,\*则表示子面意义上的星号
* 匹配零个或者多个紧接在前面的表达式,例如[ \t]可以匹配任意多个空格和tab
+ 匹配一个或者多个紧接在前面的表达式,例如[0-9]+可以匹配数字字符串,例如1,123456等。
? 匹配零个或者一个紧接在前面的表达式,例如-?[0-9]+可以匹配所有的正负数(正数前面不能有+号)
| 选择操符,匹配紧接在前面的表达式或者紧跟在后面的表达式,例如zhangsan|lisi|wangwu匹配这三个人名中的任何一个
"..." 所有引号中的字符将基于子面意义被解释,在编写正则表达式的过程中,比较好的做法是用引号引起所有需要基于字面意义匹配的标点符号
() 把一系列的正则表达式组成一个新的正则表达式,例如(01)匹配字符序列01,a(bc|de)可以匹配abc或者ade,圆括号在建立带有
,+,?和|的复杂模式时非常有用
/ 尾部上下文,匹配斜杠前的正则表达式,但是要求其后紧跟斜线后的表达式,例如0/1匹配字符串01中的0,但是不会匹配字符串0或者02,斜线后面的内容不会被“消耗掉”,它们会返还给输入以便于继续匹配,每个模式只允许一个尾部上下文操作符

示例

[-+]?([0-9].?[0-9]+|[0-9]+.) 匹配一个可以带正负号的数字,并且还可以表示小数
[-+]? 表示可以带+号或者-号
[0-9]
表示任何一个数字
.? 表示可以带小数点,也可以不带
[0-9]+ 表示至少有一个数字
| 表示或的关系
[0-9]+. 表示整数后面带小数点的情况,例如 12.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,458评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,030评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,879评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,278评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,296评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,019评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,633评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,541评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,068评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,181评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,318评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,991评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,670评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,183评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,302评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,655评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,327评论 2 358

推荐阅读更多精彩内容

  • 点(.)匹配任意的字符: text = "ab"ret = re.match('.',text)print(ret...
    140923阅读 267评论 0 0
  • 最近几天在学习正则表达式,大概思路是先了解规则,再学习re库方法,最后就可以找例子运用总结啦~ 1. 规则 1.1...
    最爱西红柿阅读 217评论 0 0
  • Gary134阅读 907评论 0 0
  • 1、非打印字符非打印字符也可以是正则表达式的组成部分,下面列出了表示非打印字符的转义字列 \cx:匹配有x知名的控...
    _Irving阅读 573评论 0 0
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,055评论 0 4