正则表达式将日期范围匹配为 (XXXX–XXXX) 或 (X) (XXXX–XXXX),包括括号

正则表达式将日期范围匹配为 (XXXX–XXXX) 或 (X) (XXXX–XXXX),包括括号

我有这个正则表达式

$title = preg_replace('/[\"\*\/\:\<\>\?\|]+/', '', html_entity_decode($title[1], ENT_QUOTES, "utf-8"));

详细信息仅与此部分相关

'/[\"\*\/\:\<\>\?\|]+/'

我尝试编辑我的正则表达式以匹配此文本

Alfa Beta (1930–2020) 
Alfa beta (I) (1922–2019)
Alfa beta (I)(1922–2019)

有什么想法吗?我也想添加括号

答案1

此正则表达式与您的示例相匹配:

(?:\(.\))?\h*\(\d+–\d+\)

演示与说明

相关内容