ZennoLab

Automate everything

用户工具

站点工具


侧边栏

本页面的其他翻译:

zh:creating-a-regular-expressions

正则表达式

什么是正则表达式

正则表达式 - 在字符串中查找其他子字符串的模式。例如,你想找到文本中所有字母“a”开头的词,或者所有长度不小于4个字母的词。ZennoPoster的正则表达式可以在处理电子邮件的时候找到其中的确认链接,也可以找到网页上的文本验证码。没有正则表达式是无法创建解析器的。
正则表达式其实很简单,你需要了解一些语法(因为在ZennoPoster中有正则表达式设计器,了解语法也不是必需的)。

什么情况下如何在ZennoPoster中使用正则表达式

  • 在文本中查找子字符串
  • 在邮件箱中中查找确认邮件
  • 查找确认帐户注册链接
  • 查找列表中需要删除的字符串
  • 页面内容解析
  • 获取文本验证码
  • 其他各式实用功能

如何在ZennoPoster中快速创建正则表达式

你可以用“正则表达式设计器”创建正则表达式。点击工程编辑器或者文本窗口视图上相关按钮。



在打开窗口的左边你可以粘贴需要处理的文本。通常你可以在开始或者结束搜索文本的时候创建正则表达式来处理文本。在正则表达式下你可以看到4个字段,你编辑任何一个,都可以看到正则表达式的变化。\\设计器中部有个选项可以选择文本的中间部分,如果你选择“Enable Linebreaks”,那么在文本中也可以包含换行。如果你不勾选这个选项,搜索仅限一行。还有个标记控制最短匹配长度。在使用正则表达式的时候你需要理解这些选项的作用。\\点击“test”,如果有匹配成功,则解析的结果会出现在右侧。匹配有可能是多个,以数字分隔。如果一些正确,包括搜索文本,那么这个正则表达式就可以从顶端的字段里拿来用了。如果有错误,尝试着修改搜索条件重试。

注意

正则表达式匹配采用贪婪模式,有多少匹配就返回多少,如果你只想返回特定某个匹配结果,请使用ranges

基本格式

你也可以根据下面的说明手工编写正则表达式:
\\最简单的正则表达式可以是abc
它直接匹配字符串abc。这个正则表达式不包含任何指令,用于搜索字符串。

方括号代表只搜索它括起来的字符:[abc]
这个例子代表任何包含单个字母a, b或者c的都匹配。再例如这个表达式[abc]d,它会匹配ad, bd, cd,如果文本中没有符合的字符串序列,就返回空。
正则表达式的点号匹配除\n外的任意字符。也就是说这个'.'代表着它匹配除换行外的任意字符。“” - 匹配任意三个字符。你可以用ab..匹配ab开头的任意长度为4的字符串。
在正则表达式中,你可以使用'|'表示或者。例如,这个正则表达式(ru|com|net)可以匹配ru, com 或者 net
可以用在表达式开头使用^符号来排除一些字符串,例如:[^аbcd] (或者[^а-d] ) 就会匹配除a , b, c, d 之外的其他字符串。注意:^ 符号必须包含在方括号内,只有在这种情况下,它才代表排除。
正则表达式还有几个特殊符号+, ?, *,用法如下:

a+ - 1个或多个字母a (aaaaaa都匹配这个表达式,但是hello不匹配)
a? - 0个或者1个字母a。例如123a+匹配123开头的同时后面可能带个a的字符串(也可能不带)
a* - 任意多个a

可以指定字符的数目范围,例如:
xy{2} - 匹配 x 后面跟着2个y
xy{2,} - 匹配x后面跟着不少与2个y (可以任意多)
xy{2,6} - 匹配x后面跟着2到6个y

用括号括起来一些字符表示多这些字符整体出现:
x(yz){2,6} -匹配x后面跟2或者6组yz
x(yz)* - 匹配x 后面跟任意多组yz

在正则表达式中你可以指定搜索的字符串是不是在行首获行尾。^匹配行首,$代表行尾:
^xy - 匹配以xy开始的字符串。注意:这种情况下^是放在括号外面的,例如^[a-z]

xy$ - 匹配以xy结尾的字符串
当你需要比较$, ^, {这些特殊字符的时候,在他们前面增加一个“\“转义符。例如你需要查找$符,正则表达式的写法是\$


更多匹配符:
\w 单词 (数字或者字母)
\W 非单词 (非数字且非字母)
\d 数字
\D 非数字
\s 空白 (空格, \f, \n, \r, \t, \v)
\S 非空白 (非空格, 非\f, 非\n, 非\r, 非\t, 非\v)

购买ZennoPoster

ZennoPoster中文官方网站

ZennoPoster中文官方群:131861794

zh/creating-a-regular-expressions.txt · 最后更改: 2015/07/14 15:51 (外部编辑)