条件匹配不与perl一起使用

时间:2015-01-07 11:25:07

标签: regex perl

我必须编写一个正则表达式来匹配以下字符串并提取年份

版权所有2015或2014-2015版权

我编写了下面给出的正则表达式并尝试在perl程序中执行代码

Copyright\s+(?(?=\d+\s*-\s*\d+)(\d+)\s*-\s*(\d+)|(\d+))

上面给出的正则表达式匹配字符串 Copyright 2014-2015 ,但是当字符串版权所有2015 时失败。我做错了什么?

1 个答案:

答案 0 :(得分:1)

你的正则表达式正在运作:

Copyright\s+(?(?=\d+\s*-\s*\d+)(\d+)\s*-\s*(\d+)|(\d+))

匹配:捕获组3的版权2015年 匹配项:2014-2015版捕获第1组和第2组


Copyright\s+(\d+)(?:\s*-\s*(\d+))?

匹配:捕获组1的版权所有2015 匹配项:2014-2015版捕获第1组和第2组