我有一个正则表达式来匹配如下所示的文件名:
name - subname goes here v4 03.txt
name - subname long 03.txt
name - subname v4 #03.txt
我想提取名称和子名称,而不需要任何附加数据。我能够很好地提取数据,给我错误的问题是v4
部分(它是一个版本标记,它是 av 和它后面的一个数字,它不包含在任何地方),我想排除它但它提取它连同子名...
我的正则表达式如下所示:
^([\w \.]+)(?:-)?([\w \.-]+)? #?\d+
我尝试做这样的事情,但它只能?
在没有“”结尾的情况下工作(?:v\d+ )?
,然后它无法匹配没有版本的文件名:
^([\w \.]+)(?:-)?([\w \.-]+)? (?:v\d+ )?#?\d+
我如何使它工作?