【发布时间】:2015-01-07 20:47:10
【问题描述】:
我必须编写一个正则表达式来匹配下面的字符串并提取年份
版权所有 2015 或版权所有 2014-2015
我已经编写了下面给出的正则表达式并尝试在 perl 程序中执行代码
Copyright\s+(?(?=\d+\s*-\s*\d+)(\d+)\s*-\s*(\d+)|(\d+))
上面给出的正则表达式匹配字符串 Copyright 2014-2015,但当字符串为 Copyright 2015 时失败。我做错了什么?
【问题讨论】:
-
为我工作。你如何测试它?为什么不简单地
/Copyright\s+(\d+)(?:\s*-\s*(\d+))?/? -
@Сухой27:你为什么要把它编辑成 PCRE? Perl 和 PCRE 是不同的。
-
@nhahtdh 没有 perl 代码,它看起来只与正则表达式有关。
-
@Сухой27 如果 OP 将其标记为 Perl,我会说这足以假设它是 Perl。
-
我将正则表达式保存在一个变量中,并尝试如下检索它,但我没有得到匹配的字符串。
($firstmatch, $secondMatch) = $string =~ m/$COPYRIGHT_PATTERN/g;