Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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
.NET中用于重命名文件的奇数正则表达式请求(增量匹配)_.net_Regex - Fatal编程技术网

.NET中用于重命名文件的奇数正则表达式请求(增量匹配)

.NET中用于重命名文件的奇数正则表达式请求(增量匹配),.net,regex,.net,Regex,在.NET中只使用正则表达式就可以输出以下文件吗?i、 e.正则表达式替换 原始文件名约定: ISBN\u ChapterNumber\u TrackNumber.Extension(999999999999\u 01\u 01.mp3) 999999999999_01_01.mp3 999999999999_01_02.mp3 999999999999_01_03.mp3 999999999999_02_01.mp3 999999999999_02_02.mp3 999999999999_

在.NET中只使用正则表达式就可以输出以下文件吗?i、 e.正则表达式替换

原始文件名约定:

ISBN\u ChapterNumber\u TrackNumber.Extension(999999999999\u 01\u 01.mp3)

999999999999_01_01.mp3
999999999999_01_02.mp3
999999999999_01_03.mp3
999999999999_02_01.mp3
999999999999_02_02.mp3
999999999999_02_03.mp3
999999999999_03_01.mp3
999999999999_03_02.mp3
999999999999_03_03.mp3
999999999999_04_01.mp3
999999999999_04_02.mp3
999999999999_04_03.mp3

输出文件名约定
VendorPrefix_TrackNumber_ISBN_分机(aaa_001_9999999999.mp3)

aaa_001_u9999999.mp3
aaa_002_9999999.mp3
aaa_003_9999999.mp3
aaa_004_u9999999.mp3
aaa_005_u9999999.mp3
aaa_006_9999999.mp3
aaa_007_u9999999.mp3
aaa_008_999999999.mp3
aaa_009_9999999.mp3
aaa_010_u9999999.mp3
aaa_011_u9999999.mp3
aaa_012_9999999.mp3

当接受输入(原始文件名)、搜索模式和替换模式时,我有一个数据驱动的文件重命名类。然后使用返回值重命名文件


我可以很容易地编写一个新方法来处理这个特定的供应商,但我正试图尽可能地保持所有数据的驱动。所以代码保持干净,我不会每次都发布一个版本

01至12如何通过正则表达式实现……正则表达式无法进行算术运算……其余所有替换都可以完成。输出中的
TrackNumber
与原始中的
TrackNumber
不同?他们应该如何绘制地图?输出中的
TrackNumber
是否只是增量?是否需要先对输入进行排序(按ISBN,然后按章节,然后按曲目)?
只使用正则表达式,为什么要进行限制?使用任何可以完成任务的工具。当前列出的数据具有基数3转换。不知道为什么,但它的
NewTrackNumber=(ChapterNumber-1)*3+TrackNumber
。是这样吗?是的,输出是严格递增的(按ISBN、章节、轨道排序)。我同意Matt,只是想把这个想法抛出去。我试图避免特定于供应商的逻辑。