R语言学习系列10正则表达式.docxVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
10. 正则表达式*一、简介在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。几乎所有的高级编程语言都支持正则表达式。正则表达式广泛应用于:检查文本中是否含有指定的特征词找出文中匹配特征词的位置从文本中提取信息,比如:字符串的子串修改文本正则表达式包括:只能匹配自身的普通字符(如英文字母数字标点等)和被转义了的特殊字符(称为“元字符”)。二、基本语法1. 常用的元字符:符号描述.匹配除换行符“/n”以外的任意字符\\转义字符,匹配元字符时,使用“\\元字符”|表示可选项,即 | 前后的表达式任选一个^匹配字符串的开始$匹配字符串的结束( )提取匹配的字符串,即括号内的看成一个整体,即指定子表达式[ ]可匹配方括号内任意一个字符{}前面的字符或表达式的重复次数:{n}表示重复n次;{n,}重复n次到更多次;{n,m}表示重复n次到m次*前面的字符或表达式重复0次或更多次+前面的字符或表达式重复1次或更多次?前面的字符或表达式重复0次或1次注:其它语言中的转义字符一般是“\”;若选中处理多行的选项,^和$就表示行的开始和结束;[aeiou]匹配任一元音字母;[.?!]匹配标点符号.或?或!2. 特殊字符类与反义:符号描述\d与\D匹配1位数字字符,匹配非数字字符\s与\S匹配空白符,匹配非空白符\w与\W匹配字母或数字或下划线或汉字,匹配非\w字符\b与\B匹配单词的开始或结束的位置,匹配非\b的位置\h与\H匹配水平间隔,匹配非水平间隔\v与\V匹配垂直间隔,匹配非垂直间隔[^...]匹配除了…以外的任意字符注:空白符包括:空格、制表符、换行符、中文全角空格等;\S+匹配不包含空白符的字符串;\d同[0-9];\w只考虑英文的话同[-z0-9A-Z_];[^x]匹配除x之外的任意字符;[^aeiou]匹配除aeiou之外的任意字符,即匹配辅音字母;a[^]+匹配用尖括号括起来的以a开头的字符串。3. POSIX字符类,用[[: … :]]括起来的符号描述[[:lower:]]小写字母[[:upper:]]大写字母[[:alpha:]]所有大小写字母[[:digit:]]数字0-9[[:alnum:]]字母和数字[[:blank:]]空白符:空格、制表符、换行符、中文全角空格等[[:cntrl:]]控制字符[[:punct:]]标点符号:! ” # % ’ () * + - . / : ;等[[:space:]]空格字符:空格, 制表符, 垂直制表符, 回车, 换行符, 换页符[[:xdigit:]]十六进制数字:0-9 A-F a-f[[:print:]]控制字符:[[:alpha:]], [[:punct:]],[[:space:]][[:graph:]]图形化字符:[[:alpha:]], [[:punct:]]4. 正则表达式符号运算顺序圆括号括起来的表达式最优先,其次是表示重复次数的操作(即* + { });再次是连接运算(即几个字符放在一起,如abc);最后是表示可选项的运行(|)。三、实例例1查找hi,即精确匹配字符串:第1个字母是h,第2个字母是i一般有忽略大小写的选项,若忽略则匹配hi,HI,Hi,hI。但很多单词包含hi这两个连续字符,比如him,history,high等,也会被查到。若要精确匹配hi单词,可以用\bhi\b假如你要找的是hi后面不远处跟着一个Lucy,你应该用:\bhi\b.*\bLucy\b表示先是一个单词hi,然后是任意个任意字符(但不能是换行),最后是Lucy这个单词。例2 匹配电话号码:0开始,三位数字,连字号“-”,8位数字0\d{3}-\d{8}例3若干小例子:\ba\w*\b——匹配以a开头的单词说明:先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)\d+——匹配1个或更多连续的数字\b\w{6}\b——匹配刚好6个字符的单词^\d{5,12}$——匹配5位到12位的QQ号注意:若只用\d{5,12},则表示字符串里包含5-12位数字,而不是整个字符串是5-12位数字。deerchao\\.net——匹配C:\\\\Windows——匹配C:\Windows说明:前两个\\用来转义,后两个\\是因为在R中反斜杠\是用\\表示的,匹配的时候可能还需要:[\\]。Windows\d+——匹配Windows后面跟1个或更多数字^\w+——匹配整个字符串的第一个单词(或多行模式下,匹配一行的第一个单词)例4匹配电话号码,使用\(?0\d{2}[)-]?\d{8}可匹配如下几种格式的电话号码:(01002

文档评论(0)

187****5045 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档