我必须编写一个正则表达式来匹配以下字符串并提取年份
版权所有2015或2014-2015版权
我编写了下面给出的正则表达式并尝试在perl程序中执行代码
Copyright\s+(?(?=\d+\s*-\s*\d+)(\d+)\s*-\s*(\d+)|(\d+))
上面给出的正则表达式匹配字符串 Copyright 2014-2015 ,但是当字符串版权所有2015 时失败。我做错了什么?
答案 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组