正则表达式教程:实例速查

时间:2018-10-24 03:44来源:未知 作者:admin 围观:字体://

  正则表达式(regex 或 regexp)在文本信息提取方面是非常有用的工具,通过查询一个或多个特定搜索模式的匹配实现(例如,特定的ASCII或unicode字符序列)。

  正则表达式的应用领域包括字符串语义分析/替换,到数据格式转换,以及网页抓取等。

  最有趣的一点是,只要学过正则表达式的语法,在目前几乎所有编程语言中都可以应用正则表达式(Java、Java、VB、C/C++、C#、Python、Perl、Ruby、Delphi、R、Tcl、以及其他很多语言),这些语言对一些高级功能和语法的支持只有细微的区别。

  谨慎使用“.” 运算符,因为通常类或反义字符类(我们将在下面介绍)会更快更精确。

  为了按字面意思理解,你必须使用反斜杠“\”来转义字符^.[$()*+?{\,bt365体育投注网因为它们具有特殊含义。

  请注意,您还可以匹配不可打印的字符,如制表符\ t,换行符\ n,回车符\ r。

  正则表达式通常以这种形式/abc /出现,皇冠体育投注网站其中搜索模式由两个斜杠字符/分隔。

  当我们需要使用您首选的编程语言从字符串或数据中提取信息时,此运算符非常有用。由几个组捕获的任何多次出现都将以经典数组的形式公开:我们将使用匹配结果的索引来访问它们的值。

  如果我们选择为组添加名称(使用(?...)),我们将能够使用匹配结果检索组值,就像字典一样,其中键将是每个组的名称。

  一个没有字母从A到Z或从A到Z.的字符串,在这种情况下,^被用作表达式的否定-尝试它!

  请记住,在括号内的表达式中,所有特殊字符(包括反斜杠\)都会失去其特殊权力:因此我们不会应用“转义规则”。

  量词(* + {} )是贪婪的运算符,因此它们通过提供的文本尽可能地扩展匹配。

  \b表示像插入符号(它类似于$和^)的匹配位置,其中一侧是单词字符(如\w)而另一侧不是单词字符(例如,它可能是字符串的开头或者空格字符)。

  它伴随着它的否定,\B。这匹配\b不匹配的所有位置,如果我们想要找到完全被单词字符包围的搜索模式,则可以匹配。

  我们可以使用\ 2(\ 3,\ 4等)来识别与第二个(第三个,第四个等)捕获组匹配的相同文本 - 试试吧!

  我们把这个组命名为foo,稍后我们引用它(\ k )。 结果与第一个正则表达式相同 - 试试吧!

  仅在r之后匹配d,但r将不是整体正则表达式匹配的一部分-试试吧!

  仅在r之前匹配d,但r将不是整体正则表达式匹配的一部分-试试吧!

  仅在不跟随r的情况下匹配d,皇冠体育投注网站但r将不是整体正则表达式匹配的一部分-尝试它!

  仅在没有r之前匹配d,但r将不是整体正则表达式匹配的一部分-尝试它!体育投注站

  正如您所看到的,bt365体育投注网正则表达式的应用程序字段可以是多个的,我确信您在开发人员职业生涯中看到的任务中至少识别出这些任务中的一个,这里是一个快速列表:

  数据抓取(特别是网页抓取,最终按特定顺序查找包含特定单词集的所有页面)

  字符串替换(即使在使用通用IDE的代码会话期间,例如在相应的JSON对象中转换Java或C#类 - 将“;”替换为“,皇冠体育投注网站”将其设为小写,避免类型声明等)

  语法高亮,文件重命名,数据包嗅探和许多其他涉及字符串的应用程序(其中数据不必是文本)

  不久我将出版一份包含常见正则表达式列表的新文章,敬请关注!雷锋网雷锋网雷锋网返回搜狐,查看更多

相关标签:数字字符(8)
相关文章:
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:

Baidu