我在这里错过了一个非常明显的事情,但我是正则表达式的新手,所以要善良; - )
我有一些任意格式的电影可能会或可能没有附加年份。
My Movie Name 2010
Some.Other.Super.Cool.Movie
The~Third|Movie.2010
现在,使用(.+)\W(\d{4})
我可以将带有日期的两部电影分成两组,一组包含名称,另一组包含年份,但中间的一部分会被忽略?我只是不确定如何让年度段可选。
理想情况下,;-),我可以使用单个表达式返回名称,将\ W转换为空格,但是转换为不同的对话。
提前致谢
答案 0 :(得分:2)
使用?在(\ d {4})
之后,一个字符组会使它成为可选的(.+)\W(\d{4})?
那是因为你在(。+)上使用贪婪匹配而且\ W在它的集合中包含了新的行字符(我认为它至少确实如此)。剥去你的尾随空格的字符串,如果这不起作用,使(。+)懒惰与?它本身的,(。+?) - 还要考虑\ W可能是这个问题的错误分隔符。
在最后添加$可能有所帮助,因为这需要数字结束功能,他们可以尝试lazing匹配和$。
(.+?)\W(\d{4})?$
答案 1 :(得分:0)
?
将其设为可选
(.+?)\W?(\d{4})?$