美文网首页
掌握正则表达式(1)工具篇

掌握正则表达式(1)工具篇

作者: redexpress | 来源:发表于2018-04-07 10:08 被阅读94次

    准备

    学习正则表达式([regular expression,缩写regex)需要有一个好用的工具来进行演练。
    可以用文本编辑器或者编程语言进行演练。

    1. 文本编辑器

    现代的文本编辑器几乎都支持正则表达式,但是不一定很全面的,最好能找一个能支持Perl 5的文本编辑器。下面的编辑器都能完整的支持Perl 5正则表达式。
    Windows系统:
    UltraEdit 12.0以上版本
    macOS系统:
    TextWrangler或者BBEdit(官网说TextWrangler不兼容macOS 10.13,不过我用的好好的,没发现问题)
    如果你用的是其它编辑器,你可以到下文演练部分测试下,看能不能用。

    2. 编程语言(可选)

    支持正则表达式强的编程语言首推Perl和Java,Python也行。我会用Python作为示例,Python不支持的正则表达式特性我会用Java。
    如果你不会编程,也没关系,我介绍正则表达式,主要用文本编辑器,你略过关于编程的部分即可。

    演练

    1. 文本编辑器

    用你的文本编辑器输入的文字

    Hello<b>t<b>t
    hell<b>t
    

    在查找框输入下面的正则表达式

    ^\b(?:[Hhg-h])\w\x6c{1,}o?<.*?>(?<!t)
    
    正则表达式示例

    注意:打开“区分大小写”,和“正则表达式“选项(TextWrangler编辑器是Grep选项)。

    若能找到两处匹配文本Hello<b>hell<b>说明你的编辑器支持正则表达式比较全面,可以用于接下来的学习。

    2. 编程语言

    用Python做上面的查找练习

    import re
    regex = r'^\b(?:[Hhg-h])\w\x6c{1,}o?<.*?>(?<!t)'
    text = 'Hello<b>t<b>t\nhell<b>t'
    all_match = re.findall(regex, text, flags=re.M)
    print(all_match)        # ['Hello<b>', 'hell<b>']
    

    说明:以r或者R开头的字符串,字符不会进行反斜杠转义,如:r'\n'表示一个反斜杠,一个字母n,不是表示换行。

    相关文章

    掌握正则表达式(2)基础篇(一)

    相关文章

      网友评论

          本文标题:掌握正则表达式(1)工具篇

          本文链接:https://www.haomeiwen.com/subject/acnshftx.html