我试图匹配段落中的所有日期,所以任何1或2位数,而不是一年或4位数。我可以捕获1或2位数字,但当我试图排除一个4位数时,它会捕获两位数。有人能帮我排除这些年吗?
下面是我正在玩的表情:
((?!\d{4})\d{1,2})
下面是我要用的一个例子
2015年1月16-25日阿联酋迪拜阵列购物节2015年3月6日-9日阵列港口童话节澳大利亚维多利亚2015年3月12日阵列不伦瑞克音乐节澳大利亚墨尔本2015年3月14日-15阵列塔斯马尼亚国际艺术节霍巴特阵列塔斯马尼亚国际艺术节霍巴特,澳大利亚塔斯马尼亚州塔斯马尼亚州2015年3月21-22阵列卡氏州立节卡斯特莱曼州音乐节2016年4月26日至31日新南威尔士州维多利亚州悉尼皇家复活节展澳大利亚悉尼皇家复活节展2016年6月26日澳大利亚新南威尔士悉尼阵列皇家复活节展澳大利亚新南威尔士澳大利亚2016年7月27日-30日阵列‘Fun4Kids’国际儿童节,澳大利亚,2017年1月16日-25日阵列迪拜购物节迪拜,阿联酋2017年3月6日至9日列阵港口童话节,澳大利亚,维多利亚,2017年3月12日阵列不伦瑞克音乐节墨尔本,澳大利亚维多利亚,2017年3月14-15阵列塔斯马尼亚国际艺术节霍巴特,澳大利亚塔斯马尼亚,2017年3月21-22阵列卡斯特莱恩州立艺术节,维多利亚,维多利亚
这是由用户生成的。因此,日期可以以任何方式格式化。
发布于 2016-05-20 06:02:44
在你的例子中,最简单的方法(我认为)是使用单词边界。
\b\d{1,2}\b
它确保数字的两边都有而不是一个单词字符(其中包括数字)。
这将确保不超过2位数的一排。
如果您的目的是捕获数字(如您的实验),只需将括号放回它周围:
(\b\d{1,2}\b)
https://stackoverflow.com/questions/37339010
复制相似问题