正则表达式_学习篇

一、皮特派

  1. \d : [0-9a-fA-F]表示一个数,范围在这个集合里面

\d+:表示多个数 ,\d*:表示数可能不存在

  1. \s:表示空格

不确定有没有空格,就用\s*;确定有空格,但数量不定,就用\s+

  1. [0-9.]:\d只能表示集合里面的数,但是这里有. 所以直接写集合

  1. [()\-]:斜杠在集合里面表示‘到’的意思,所以这里使用需要'\'来将它转意

  1. {3}:如果明确有三个字符,就用大括号将数字写死,如果不确定,也可以用‘+’表示,但是这里有可能有,有可能没有,所以‘+’不能用,但是可以用‘*’

  1. ^:放在开头,限定\d代表的数字为开头,如果是‘aaaa0:’这样的就不匹配

  1. 表示行结束,使用$表示

第四行的正则表达式:
expPID = "^\d+:\s*ta\s*=\s*[0-9.\-]+\s*,\s*[()\-]{3}\s*err\s*=\s*[0-9.\-]+\s*,\s*[()\-]*\s*pp\s*=\s*[0-9.\-]\s*,/s*[()\-]\s*ii\s*=\s*[0-9.\-]+\s*,/s*[()\-]\s*pid\s*=\s*[0-9.\-]+\s*,\s*duty\s*=\s*[0-9.\-]+\s*$" ;
拼接用法
expNum = "[0-9.\-]" ;
expPID = stract("^\d+:\s*ta\s*=\s*",expNum,"+\s*,\s*[()\-]{3}\s*err\s*=\s*[0-9.\-]+\s*,\s*[()\-]*\s*pp\s*=\s*[0-9.\-]\s*,/s*[()\-]\s*ii\s*=\s*[0-9.\-]+\s*,/s*[()\-]\s*pid\s*=\s*[0-9.\-]+\s*,\s*duty\s*=\s*[0-9.\-]+\s*$" );
提取信息:
expPID = "^\d+:\s*ta\s*=\s*([0-9.\-]+)\s*,\s*[()\-]{3}\s*err\s*=\s*[0-9.\-]+\s*,\s*[()\-]*\s*pp\s*=\s*[0-9.\-]\s*,/s*[()\-]\s*ii\s*=\s*[0-9.\-]+\s*,/s*[()\-]\s*pid\s*=\s*[0-9.\-]+\s*,\s*duty\s*=\s*[0-9.\-]+\s*$" ;
以提取866.00000举例:先用括号将正则表达式内此信息提取出来
expPID = "^\d+:\s*ta\s*=\s*(?<ta>[0-9.\-]+)\s*,\s*[()\-]{3}\s*err\s*=\s*(?<err>[0-9.\-]+)\s*,\s*[()\-]*\s*pp\s*=\s*(?<pp>[0-9.\-]+)\s*,/s*[()\-]\s*ii\s*=\s*(?<ii>[0-9.\-]+)\s*,/s*[()\-]\s*pid\s*=\s*(?<pid>[0-9.\-]+)\s*,\s*duty\s*=\s*(?<duty>[0-9.\-]+)\s*$"
此时ta=866.00000 ...依次类推
  1. 锚位:

i am a student.
i amplitude a student
1. expI = "am"    所有的“am”都会被匹配到
expI = "\bam\b"   只有“am”这个单词会被匹配到,“am”前后都不准有字幕,“\b”代表边界
在vim里面,使用\<am\>表示\bam\b

matlab

perl

vim

\b\b

\<\>

+

\+

{3}

\{3\}

替换:

[range]s/pattern/string/[c,e,g,i]

range: 范围, 1,7 指第一行至第七行. 也可以使用 % 代表当前的文章(也可以理解为全部的行), # 代表前一次编辑的文章(基本不用)

s : 代表当前的模式为替换

/: 作为分隔符, 如果确实要替换文中的 /, 那么可以使用 # 代替作为分隔符. 例如 :s#vi/#vim#g, 代表替换 vi/ 为 vim

pattern : 要被替换掉的字符

string : 将要使用的字符

c : confirm, 每次替换前会询问

e: ignore, 忽略错误(默认找不到会提示 pattern not found, 但是如果设置 vim 设置批量替换命令的话某一个项未匹配到不能影响到下一项的执行, 可以使用此关键字, :silent %s/x/y/g == :%s/x/y/ge )

g : global, 整行替换(基本上是必加的, 否则只会替换每一行的第一个符合字符)

i : ignore, 不区分大小写

I: 区分大小写

:30,152s/       \([a-z_0-9]\+_pdpu\)/ [1:0] \1/g 
“:”:gvin查找模式
30,152s:替换范围
可以直接替换,也可以在pattern里面使用\(A\),在string里面依次\1,\2引用A,如实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值