C# 常规实验-应该是什么?
这就是我要搜索的内容:C# 常规实验-应该是什么?,c#,.net,regex,C#,.net,Regex,这就是我要搜索的内容: [assembly: AssemblyFileVersion("4.0.10.121017")] 这些数字应该是 1-999 1-10 0-10 1-9999 6个数字(日期) 我写了这个,但那不起作用 @"\[assembly: AssemblyFileVersion\(\""(\d{1}).(\d{1}).(\d{2}).(\d{6})""\)\]" 编辑(基于问题更新): 只需将您的需求转换为正则表达式: \[assembly: AssemblyFileVer
[assembly: AssemblyFileVersion("4.0.10.121017")]
这些数字应该是
@"\[assembly: AssemblyFileVersion\(\""(\d{1}).(\d{1}).(\d{2}).(\d{6})""\)\]"
编辑(基于问题更新):
只需将您的需求转换为正则表达式:
\[assembly: AssemblyFileVersion\(\"\d{1,3}\.\d{1,2}\.\d{1,4}\.\d{6}\"\)\]
@Ω我只是假设这个版本应该是一个有意义的数字组合。我不认为这是一个棘手的问题。如果是,如何验证\d{6}是日期?无论如何,你是对的。让它变得完美永远是一条路要走。在这种情况下应为-1.:)这是不是因为它不工作:matchVersion=Regex.Match(strLine,@“[assembly:AssemblyFileVersion(\”“\d{1,3}\.\d{1,2}\.\d{1,4}\.\d{6}\]”);(1) 我将进一步对日期进行正则表达式优化,但我不确定日期格式是
YYMMDD
还是MMDDYY
;(2) 如果您在回答中添加一些关于您的正则表达式弱点的注释或进行更多优化,我将很高兴删除我的反对票,因为问题要求更多…@user1423277,但您说“000”也在您的视线之内。?000在1-999之间?不管怎样,你在这里找到解决方案有什么重要意义。@user1423277我被你的评论迷住了。。。。无论什么Ωmega的答案应该能解决你的问题。接受这一点,然后继续你的工作……很好luck@user1423277@“\[assembly:AssemblyFileVersion\(\“[1-9]\d{0,2}.(?:[1-9]| 10)\.[1-9]\d{0,3}.\d{6}”)\”
如果我在我的代码中运行上面的代码,它将不匹配。[组件:组件文件版本(“4.0.10.121017”)]Fails@user1423277-确保失败,因为第二个数字是0
,您要求(阅读您的问题)该数字为1-10
@user1423277-我的答案已更新,以反映您的问题更新。请修改您的标题,以便对本网站的未来用户有用。
[1-9]\d{0,2}\.(?:\d|10)\.[1-9]\d{0,3}\.\d{6}
\[assembly: AssemblyFileVersion\(\"\d{1,3}\.\d{1,2}\.\d{1,4}\.\d{6}\"\)\]