Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带前导零的正则表达式_C#_Regex - Fatal编程技术网

C# 带前导零的正则表达式

C# 带前导零的正则表达式,c#,regex,C#,Regex,我需要通过正则表达式将文件列表中的文件名与数据库行相匹配 文件名是带前导零的数字 数据库值是没有前导零的数字 示例文件列表: 0001.jpg 0002.bmp ... 0012.bmp 0013.bmp 0014.jpg ... 1012.jpg ... 1015.jpg ... 我用C#。我需要将每个文件名与数据库中的每一行进行匹配。我有点不愿意回答,但为了匹配这些文件名(我猜您正在尝试这样做),您应该尝试:\d{4}\(jpg|bmp) 编辑: 0001.jpg 0002.b

我需要通过正则表达式将文件列表中的文件名与数据库行相匹配

  • 文件名是带前导零的数字
  • 数据库值是没有前导零的数字
示例文件列表:

0001.jpg
0002.bmp
...
0012.bmp
0013.bmp
0014.jpg
...
1012.jpg
...    
1015.jpg
...

我用C#。我需要将每个文件名与数据库中的每一行进行匹配。

我有点不愿意回答,但为了匹配这些文件名(我猜您正在尝试这样做),您应该尝试:
\d{4}\(jpg|bmp)

编辑:

0001.jpg
0002.bmp
...
0012.bmp
0013.bmp
0014.jpg
...
1012.jpg
...    
1015.jpg
...
因为你对你的-1是如此的自由

正则表达式并不是解决编码问题的正确技术,正则表达式用于查找与模式匹配的字符串

您似乎描述的问题是,您的文件系统类型很差,不必要地添加了0,并且希望将
4
转换为
0004
,而不关心您的文件扩展名

解决您的问题的“最佳解决方案”是修复文件的编号系统,或者简单地在c#中添加前导的0,而不是使用旨在完成完全不同任务的技术

祝你玩得愉快

您可以使用这个正则表达式

^0+\d+[.](jpg|bmp|jpeg|exe)


您尝试的示例代码在哪里?因此您有一个包含文件名的表,但数据与文件名不完全匹配?你有什么问题?你想让它匹配吗?我用C#,但为什么重要呢?我需要一个正则表达式匹配字符串。我需要将每个文件名与数据库中的每一行匹配。您的示例与列表中的所有文件名匹配。例如,我需要将数据库中的56与文件列表中的0056.jpg相匹配,但不能与1056.jpg或0156.bmp相匹配。@Murat已编辑以满足您的需要。谢谢您的回答!但我需要查看所有数据库行,并将每一行仅与一个文件匹配。上面的示例与许多文件名匹配。@Murat编辑应该可以工作。。它将匹配lineAnirudh开头的所有文件名,例如,我的数据库中有一个数字字段,比如175,我需要将其插入正则表达式中以查找文件0175.*@Murat您可以按
0+175[.](jpg | bmp | jpeg | exe)的方式进行编辑
不幸的是,1175.jpg、2175.jpg和0175.jpg也会出现。但我需要数据库行和文件名之间的一对一连接。