菜鸟教程---Regex正则表达式总结

  • \ 将下一个字符标记为一个特殊的字符、一个原义字符、一个向后引用或一个转义字符。如,n匹配字符n,\n匹配一个换行符,序列\匹配,()匹配().
  • ^ 匹配字符串的开始位置。Multiline属性,^也匹配\n或\r后的位置
  • $ 匹配输入字符串的结束位置。如果设置了正则表达式对象的Multiline属性,也匹配匹配\n或\r之前的位置
  • 匹配前面的子表达式零次或多次。例如,zo*能匹配z或zoo,等价于{0,}
  • + 匹配前面的子表达式一次或多次。例如,zo+能匹配zo以及zoo,但不能匹配z,等价于{1,}
  • ? 匹配前面的的子表达式零次或一次。例如,do(es)?可以匹配do或does中的do,等价于{0,1}
  • {n} n是非负整数,匹配确定的n次。例如,o{2}不能匹配Bob中的o,但是能匹配food中的两个o
  • {n,} n是一个非负整数,至少匹配n次。例如,o{2,}不能匹配Bob中的o但是能匹配fooooood中的所有o。o{1,}等价于o+,o{0,}等价于o*
  • {n,m} m和n均为非负整数,其中n<=m,最少匹配n次且最多匹配m次。例如,
    o{1,3}将匹配foooood中的前三个o,o{0,1}等价于o?。请注意在逗号和两个数字之间不能有空格
  • ?当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配是非贪婪的。例如对于字符串ooo,o+?将匹配单个o,而o+将匹配所有o
  • .匹配除\n之外的任何单个字符。要匹配包括\n在内的任何字符请使用[.\n]的模式
  • (pattern)匹配pattern并获取这一匹配
  • (?pattern) 匹配pattern但不获取匹配结果
  • (=pattern) 正向预查,在任何匹配pattern的字符串开始出匹配查找字符串
  • (=pattern) 负向预查,在任何不匹配pattern的字符串开始出匹配查找字符串
  • x|y匹配x或y
  • [xyz] 匹配包含的任意字符
  • [^xyz]匹配未包含的任意字符串
  • [a-z] 匹配指定范围内的任意字符
  • [^a-z] 匹配不在指定范围内的任意字符
  • \b 匹配一个单词的边界,即单词和空格间的位置。例如er\b匹配never中的er,但不能匹配verb中的er
  • \B 匹配一个单词的非边界,例如er\b不能匹配never中的er,但能匹配verb中的er
  • \cx 匹配由x指明的控制字符。例如\cM匹配一个Control-M或回车符。x值必须为A~Z或a~z之一。否则视c为原意的一个c字符。
  • \d 匹配一个数字字符。等价于[0-9]
  • \D 匹配一个非数字字符,等价于[^0-9]
  • \f 匹配一个换页符,等价于\x0c和\cL
  • \n 匹配一个换行符,等价于\x0a和\cJ
  • \r 匹配一个回车符等价于\x0d和\cM
  • \s 匹配任何空白字符,包括空格、制表符、换页符等。等价于[\f\n\r\t\v]
  • \t 匹配一个制表符
  • \v 匹配一个垂直制表符
  • \w 匹配包括下划线的任何单词字符,等价于[A-Za-z0-9_]
  • \W 匹配包括下划线的任何单词字符,等价于[^A-Za-z0-9_]
  • \num 匹配num,其中num是一个正整数。例如,(.)\1匹配两个连续相同的字符。
  • 注意:以上均为javaScript代码,java中使用(.)\1匹配两个连续相同的字符。
    ()中的表达式为组,并自动标号,\n表示第n个组。想要获取前面组的表达式可以用$n,n为组的序号。例如replaceAll("(\\D{2,})\\1+","$1");去除重复的字符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
30天学会ABAP程序 学习ABAP并不难,有人说SAP系统重在管理思想,不在技术,通常对有编程经验的读者不用任何培训参考一些相关资料就可立即上手. 简单介绍下ABAP/4的一些特征: 1.和SAP紧密结合,尤其在开发报表方面,坦率地讲,除了和SAP集成的好处,.我定认为ABAP在报表开发上比Crystal report Tool要高效简单. 2.和VB一样 ,ABAP是解释形的,如读者精通VB,学习ABAP应该豪不费力,倒是既然SAP是企业管理解决方案,ABAPer必须对企业管理流程熟悉. 解释性的另一好处是可以很好跟踪程序逻辑(使用/H),这对了解业务逻辑的实和追踪错误很有效. 和VB不同的是,VB跟踪时允许程序运行指针随意往回或往全拉而ABAP程序去不行, 但是ABAP程序允许在运行时修改变量的值,这是编译程序不能做到的. 当然通常编译比解释执行的速度会更快. ABAP程序执行并不直接读取源代码,而是执行内部经过“生成”的描述,对于ABAP/4字典的修改激活后将触发内部描述的重新生成,如程序并没激活就执行原版本,或者出现错误(程序没激活可能造成ABAP Dumping ABAP). 3.在对数据库处理方面,除了可直接执行SQL(使用native sql,缺点是错误处理很难控制,相当于有开发环境将SQL 语句直接传给DB去执行),SAP在ABAP开发环境层还提供了一套Open SQL访问底层数据库. 4. 程序员都知道Windows平台下开发都支持事件驱动,Windows系统本身也支持事件驱动,ABAP也提供了事件驱动,这表现在Dialog编程方面,但是ABAP在此方面并不强,而且相对讲也比较难于掌握(在后面会讨论). 5.基于面向对象的风靡,ABAP在此方面也有相当反应,在SAP强大的软件包中提供了大量可重复使用的程序,读者也可定义类并使用它快速建立新的对象. 6.类似Java,ABAP开发的程序能运行于任何操作系统(Java有Java虚拟机,ABAP也有ABAP processor),多种数据库(比如在ABAP字典中实现了透明表对各种底层数据库表的映射,这样在ABAP层看到的透明表就和具体数据库无关),各种网络系统.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值