"(\ S +)\.|"之间的区别 和"(\ S +)|" 在Perl

Sky*_*eth -6 regex perl

我不知道(\S+) |和之间的区别(\S+)\.|是什么.

Dav*_*idO 8

(\S+)\.| 将匹配并捕获任何数字(一个或多个)非空格字符,后跟一个点字符.

(\S+) |将匹配并捕获任何数字(一个或多个)非空格字符,后跟空格字符(假设正则表达式未使用/x标志修改).

在这两种情况下,这些构造似乎是交替的一个组成部分.

打破它:

  • (.... ):集体和捕获.
  • \S :非空格字符.
  • + : 一个或多个.
  • \. :一个点字符(没有反斜杠转义,点有特殊含义).
  • : Just an ordinary single space.
  • | :交替(类似于逻辑或).

有关Perl正则表达式中的速成课程,请参阅perlretut.此外perlintro是学习Perl的一个很好的起点,perlre是Perl的正则表达式的规范说明.Perl的文档中还有许多其他有用的文档,但这些文档可以让您朝着正确的方向前进.

如果你想学习2005年关于常见正则表达式的一切,Mastering Regular Expressions,3rd Edition是无与伦比的.尽管已有几年历史,它仍然是正则表达式上最好的资源之一.