我正在尝试匹配段落中的所有日期,因此任何1或2位数而不是一年或4位数。 我可以捕获1或2位数,但当我尝试排除4位数时,它会捕获两个2位数字。 任何人都可以帮助我排除这些年份吗?
接下来我正在玩的表情:
((?!\d{4})\d{1,2})
这是一个我将在
上使用它的示例段落2015年1月16日至25日阵列迪拜购物节迪拜,2015年阿联酋 3月6日至9日维多利亚港仙女港仙女民俗节 澳大利亚2015年3月12日阵列布伦瑞克音乐节墨尔本, 澳大利亚维多利亚2015年3月14日至15日阵塔斯马尼亚国际艺术 节日霍巴特,塔斯马尼亚,澳大利亚2015年3月21日至22日 列阵Castlemaine状态节日Castlemaine,维多利亚,澳大利亚2016年 4月26日至31日澳大利亚新南威尔士州悉尼悉尼2016年皇家复活节展 4月1 - 8日阵列悉尼皇家复活节展2016年澳大利亚新南威尔士州悉尼 6月26日阵中CEHL会议NAB Docklands,维多利亚州墨尔本, 澳大利亚2016年7月27日至30日阵列'Fun4Kids'国际儿童 Festival Warrnambool,维多利亚,澳大利亚2017年1月16日至25日 阵列迪拜购物节迪拜,阿联酋2017年3月6日至9日阵列端口 Fairy Folk Festival Port Fairy,维多利亚,澳大利亚2017年3月12日 Array Brunswick音乐节墨尔本,维多利亚,澳大利亚2017年 3月14 - 15日阵容塔斯马尼亚国际艺术节霍巴特, 澳大利亚塔斯马尼亚岛2017年3月21日至22日阵列Castlemaine州 Festival Castlemaine,维多利亚,澳大利亚
这是由用户生成的。因此,日期可以采用多种方式进行格式化。
答案 0 :(得分:4)
在您的情况下,最简单的方法(我认为)将使用字边界。
\b\d{1,2}\b
确保数字的任意一侧有不 字字符(包括数字)。
这将确保它不会连续超过2位数。
如果您打算捕获数字(如在实验中),只需将括号放回其周围:
(\b\d{1,2}\b)