准备
学习正则表达式([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,不是表示换行。
网友评论