我有一个正则表达式,可以很好地在一个句子中查找日期和三组缩写。
/^(\d{1,2}[/.-]\d{1,2}[/.-])(\d{2}|\d{4})(\s[A-Z]{2,5}\s[A-Z]{2,5}\s[A-Z]{2,5})$/;
工作示例 2018年5月28日SB GL PA
但是,有时在日期和首字母首字母之间可能会出现任意数量的多个单词,例如,2018年5月28日 ENG APP PROJ APPROVE ETC ETC SB GL PA
在正则表达式中,粗体字需要忽略,我认为前面的否定词可能会起作用,但需要帮助,因为日期和首字母之间可以有任意数量的字。
如果有人可以帮助您修改正则表达式,以便找到日期和三组缩写的匹配项,无论中间是什么字符串,我将不胜感激-谢谢
答案 0 :(得分:1)
尝试使用正则表达式:^(\d{1,2}[\/.-]\d{1,2}[\/.-])(\d{4}|\d{2}).*?(\s[A-Z]{2,5}\s[A-Z]{2,5}\s[A-Z]{2,5})$
替换为:$1$2$3
说明:
$ 1具有第一个捕获组的值,在这种情况下为(\d{1,2}[\/.-]\d{1,2}[\/.-])
$ 2具有第二个捕获组的值,在这种情况下为(\d{4}|\d{2})
$ 3具有第三个捕获组的值,在这种情况下为(\s[A-Z]{2,5}\s[A-Z]{2,5}\s[A-Z]{2,5})