从字符串中提取电影名称和年份是年份是可选的

时间:2011-03-23 03:03:49

标签: regex movie

我在这里错过了一个非常明显的事情,但我是正则表达式的新手,所以要善良; - )

我有一些任意格式的电影可能会或可能没有附加年份。

My Movie Name 2010
Some.Other.Super.Cool.Movie
The~Third|Movie.2010

现在,使用(.+)\W(\d{4})我可以将带有日期的两部电影分成两组,一组包含名称,另一组包含年份,但中间的一部分会被忽略?我只是不确定如何让年度段可选。

理想情况下,;-),我可以使用单个表达式返回名称,将\ W转换为空格,但是转换为不同的对话。

提前致谢

2 个答案:

答案 0 :(得分:2)

使用?在(\ d {4})

之后,一个字符组会使它成为可选的
(.+)\W(\d{4})?

那是因为你在(。+)上使用贪婪匹配而且\ W在它的集合中包含了新的行字符(我认为它至少确实如此)。剥去你的尾随空格的字符串,如果这不起作用,使(。+)懒惰与?它本身的,(。+?) - 还要考虑\ W可能是这个问题的错误分隔符。

在最后添加$可能有所帮助,因为这需要数字结束功能,他们可以尝试lazing匹配和$。

(.+?)\W(\d{4})?$

答案 1 :(得分:0)

?将其设为可选

(.+?)\W?(\d{4})?$