精华内容
下载资源
问答
  •  正则表达式是什么东东?  在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。 很可能你使用过...

    一、引言

      正则表达式是什么东东?

      在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

    很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号“-”,最后是7或8位数字的字符串(像010-12345678或0376-7654321)。

    文本格式约定:专业术语 元字符/语法格式 正则表达式 正则表达式中的一部分(用于分析) 对其进行匹配的源字符串 对正则表达式或其中一部分的说明。

    字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等等。字符串是0个或更多个字符的序列。文本也就是文字,字符串。说某个字符串匹配某个正则表达式,通常是指这个字符串里有一部分(或几部分分别)能满足表达式给出的条件。

    二、实例入门

    学习正则表达式的最好方法是从例子开始,理解例子之后再自己对例子进行修改,实验。下面给出了不少简单的例子,并对它们作了详细的说明。

    假设你在一篇英文小说里查找hi,你可以使用正则表达式hi。

    这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。通常,处理正则表达式的工具会提供一个忽略大小写的选项,如果选中了这个选项,它可以匹配hi,HI,Hi,hI这四种情况中的任意一种。

    不幸的是,很多单词里包含hi这两个连续的字符,比如him,history,high等等。用hi来查找的话,这里边的hi也会被找出来。如果要精确地查找hi这个单词的话,我们应该使用\bhi\b。

    \b是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但是\b并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置

    假如你要找的是hi后面不远处跟着一个Lucy,你应该用\bhi\b.*\bLucy\b。

    这里,.是另一个元字符,匹配除了换行符以外的任意字符。*同样是元字符,不过它代表的不是字符,也不是位置,而是数量——它指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配。因此,.*连在一起就意味着任意数量的不包含换行的字符。现在\bhi\b.*\bLucy\b的意思就很明显了:先是一个单词hi,然后是任意个任意字符(但不能是换行),最后是Lucy这个单词。

    如果需要更精确的说法,\b匹配这样的位置:它的前一个字符和后一个字符不全是(一个是,一个不是或不存在)\w。

    如果同时使用其它元字符,我们就能构造出功能更强大的正则表达式。比如下面这个例子:

    0\d\d-\d\d\d\d\d\d\d\d匹配这样的字符串:以0开头,然后是两个数字,然后是一个连字号“-”,最后是8个数字(也就是中国的电话号码。当然,这个例子只能匹配区号为3位的情形)。

    这里的\d是个新的元字符,匹配一位数字(0,或1,或2,或……)。-不是元字符,只匹配它本身——连字符(或者减号,或者中横线,或者随你怎么称呼它)。

    换行符就是'\n',ASCII编码为10(十六进制0x0A)的字符。

    为了避免那么多烦人的重复,我们也可以这样写这个表达式:0\d{2}-\d{8}。这里\d后面的{2}({8})的意思是前面\d必须连续重复匹配2次(8次)。

    OK,到此为止,相信你已经对正则表达式有了一个初步认识,后续文章将会带你更深层次的去理解正则表达式的用法~~~

    您可以考虑给博主来个小小的打赏以资鼓励,您的肯定将是我最大的动力。thx.

    微信打赏

    微信账号 nzf6698

    支付宝打赏

    支付宝账号 18979406698


    作  者: Angel_Kitty
    出  处:http://www.cnblogs.com/ECJTUACM-873284962/
    关于作者:潜心机器学习以及信息安全的综合研究。如有问题或建议,请多多赐教!
    版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
    特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信
    声援博主:如果您觉得文章对您有帮助,可以点击右下角推荐推荐一下该博文。您的鼓励是作者坚持原创和持续写作的最大动力!

    展开全文
  • windows 正则表达式 工具 PowerGREP

    千次阅读 2010-06-26 18:37:00
    POWERGREP, 号称“The Most Powerful GREP Tool for Windows”, 商业网站下载地址:http://www.powergrep.com/<br />  <br />  点击可以看大图。另外,还有一组图片来自...我使用了一条正则表达式
    • POWERGREP, 号称“The Most Powerful GREP Tool for Windows”,

    商业网站下载地址:http://www.powergrep.com/

     

     

    点击可以看大图。另外,还有一组图片来自powergrep官网,附上了官网的部分介绍,以及个人评论。

    • 内容搜索图片,点这里
      在本抓图中,我搜索了c:/My Documents/My Web Sites文件夹及其子目录下所有的html文件。我使用了一条正则表达式把搜索范围限定在HTML tag之内,使用另一条正则式在这些标记中搜索所有的email地址。

       

       

    • 搜索和替换,点这里这里
      一个好用的功能是可以预览结果而不是立即替换。匹配结果以黄色标出。双击匹配就能打开对应的文档并检验其内容。
      点击执行后,颜色改变,表示已经实施替换。

       

    • 收集信息和统计数据,点这里
      本例是“检测Apache网络日志--google search terms”的例子。本例使用的正则式在PowerGREP帮助文档中有详细讲解。

       

    • 灵活的“撤消”历史记录,让你不再抓狂,点这里
      在执行替换的同时,PowerGREP已经备份了原文件。只要你没有手动删除这些备份的文件,你可以随便撤消你做过的任何操作。世界上真有后悔药的呀。

       

    • 搜索PDF文档,点这里
      PDF也能使用正则式进行搜索?当然了,你没有看错。只是,要确保PDF文档中你要搜索的内容是文字而非图像。也就是说,扫描版的PDF不享受此功能的哟。

       

    • 在MS word 文档中搜索,点这里
      这个功能也十分有用。我记得还有个东东叫ViEmu for Word & Outlook,可以在word和outlook中模拟vim,当然可以使用正则式搜索替换了。不过,ViEmu一来也是收费软件(在2008年5月31日之前是79美刀,之后是99美刀),我还没有找到免费版本;二来其正则式是vim风格的,只习惯Perl风格的同学可能不太习惯。在google documents里也支持正则式搜索了,具体语法、风格尚未广泛测试。

       

    • 在MS Excel中搜索,点这里
      同样也是批量搜索、替换。不单单是对一个文档、一个sheet。

       

    • 以16进制模式,在2进制文档中搜索,点这里
      跟二进制编辑器界面类似,多了正则式批量搜索替换功能。

       

    • 在zip压缩文档中搜索,点这里
      把zip文件当作普通文件夹来搜索。很强大吧?

       

    • 正则表达式序列,点这里
      大多数正则式工具一次只支持一条正则式的操作。而PowerGREP可以一次执行多条正则式!使用checkbox来进行多项选择。

       

    • 定制颜色显示,点这里
      该功能比较一般。除非软件中的颜色设置特傻,一般我是不会改变默认颜色搭配的。

    功能演示

    PowerGREP官网还提供了一组flash做的demo,见下。

    • 使用正则式匹配email地址(2’47”)。点这里
    • 升级版权信息(3’38)。点这里
    • 与RegexBuddy的无缝链接(1’57”),点这里;两个软件是亲兄弟,当然哥俩好啦!
    • 文件选择(3’08”),点这里;PowerGREP提供了贴心的特性,来帮助你筛选需要的文档。
    • 其它特性(8’37”),点这里;总而言之,PowerGREP是功能强大。自己发掘吧!
    展开全文
  • 正则表达式到底是什么东西? 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。 很可能你使用...

    正则表达式到底是什么东西?

    在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

    很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是*?。如果你想查找某个目录下的所有的Word文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号“-”,最后是7或8位数字的字符串(像010-123456780376-7654321)。

     

    正则表达式入门

    学习正则表达式的最好方法是从例子开始,理解例子之后再自己对例子进行修改,实验。下面给出了不少简单的例子,并对它们作了详细的说明。

    假设你在一篇英文小说里查找hi,你可以使用正则表达式hi

    这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。通常,处理正则表达式的工具会提供一个忽略大小写的选项,如果选中了这个选项,它可以匹配hi,HI,Hi,hI这四种情况中的任意一种。

    不幸的是,很多单词里包含hi这两个连续的字符,比如him,history,high等等。用hi来查找的话,这里边的hi也会被找出来。如果要精确地查找hi这个单词的话,我们应该使用\bhi\b

    \b是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但是\b并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置。

    假如你要找的是hi后面不远处跟着一个Lucy,你应该用\bhi\b.*\bLucy\b

    这里,.是另一个元字符,匹配除了换行符以外的任意字符*同样是元字符,不过它代表的不是字符,也不是位置,而是数量——它指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配。因此,.*连在一起就意味着任意数量的不包含换行的字符。现在\bhi\b.*\bLucy\b的意思就很明显了:先是一个单词hi,然后是任意个任意字符(但不能是换行),最后是Lucy这个单词

     

    如果同时使用其它元字符,我们就能构造出功能更强大的正则表达式。比如下面这个例子:

    0\d\d-\d\d\d\d\d\d\d\d匹配这样的字符串:以0开头,然后是两个数字,然后是一个连字号“-”,最后是8个数字(也就是中国的电话号码。当然,这个例子只能匹配区号为3位的情形)。

    这里的\d是个新的元字符,匹配一位数字(0,或1,或2,或……)-不是元字符,只匹配它本身——连字符(或者减号,或者中横线,或者随你怎么称呼它)。

    为了避免那么多烦人的重复,我们也可以这样写这个表达式:0\d{2}-\d{8}这里\d后面的{2}({8})的意思是前面\d必须连续重复匹配2次(8次)

    查看更多,请到:

    展开全文
  • 正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。 很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的Word文档的话,...

    点击打开链接

    我是先看了正则表达式30分钟入门教程 (网页)
    然后看了 精通正则表达式 (豆瓣) (动物书)
    最后平时配合 RegexBuddy: Learn, Create, Understand, Test, Use and Save Regular Expression(软件)

    这语言是我长这么大觉得最屌的,装逼和实用兼备

    展开全文
  • 本文主要涉及以下内容:正则表达式基础什么是正则表达式不管是使用Windows搜索工具,还是在word文档里面的查找和替换,肯定都用过*和?这种通配符。如果想要在某个目录下找到自己写的笔记,我最常用的方法就是*.md...
  • cpr:在Windows和linux中,以UTF-8支持在子目录下递归复制到使用Perl正则表达式搜索的当前路径文件
  • 正则表达式

    千次阅读 2020-02-24 20:42:27
    正则表达式到底是什么东西? 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。 很可能你使用...
  • 正则表达式 就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard) ,也就是* 和? 。如果你想查找某个目录下的所有的Word文档...
  • 正则表达式入门

    2018-05-23 03:26:26
    比如你在windows下想要查找某个目录下的所有word文档,你会搜索.doc, 在这里 会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,比如你可以编写一个正则表达式,用...
  • 正则表达式在c++11后被正式纳入标准库,包含regex_match,regex_search,regex_replace功能模块...正则表达式与通配符(如windows平台文件搜索框)区别 通配符主要用来操作文件名 。 正则表达式主要操作文本数据。...
  • 正则表达式基础

    2020-08-18 11:49:20
    1.正则表达式到底是什么? 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。 很可能你使用过...
  • 正则表达式语法

    2017-06-21 02:57:45
    正则表达式语法 1、什么是正则表达式? 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码...
  • 正则表达式学习笔记

    2019-04-01 21:28:24
    正则表达式通过由普通字符和特殊字符组成的文字模板完成对字符串的校验,搜索,替换。正则表达式在表单验证中起到了很大的作用。 且正则不止应用于编程语言中,如JavaScript、JAVA、Perl、PHP、C#等。它也应用于许多...
  • [总结]PHP正则表达式

    2016-01-28 20:18:31
    什么是正则表达式正则表达式是字符串搜索和匹配的工具。2.无孔不入的正则表达式我们日常生活中使用的很多电子设备,无时无刻不在跟正则表达式打交道。1.windows的文件搜索功能: *.zip就是一种正则表达式的匹配2....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 387
精华内容 154
关键字:

windows正则表达式搜索