次の例のファイルパスを解析し、次の表に示すように、パス、base、extおよびnumを返す正規表現が必要です。これらのサンプルファイルパスを解析できる正規表現
この正規表現はほとんど動作しますが、ファイル名に複数のピリオドが含まれていると、残念ながら短くなります。ここで
^(.*\\)?(.*?)\.(.*?)\.?([0-9]+)?$
input path base ext num
--------------------------- ------------ ---------- ------ ------
c:\temp\00883005.prt.1 c:\temp\ 00883005 prt 1
00883005.prt 00883005 prt
00883005.prt.1 00883005 prt 1
\\data\test\00883005.prt \\data\test\ 00883005 prt
\\data\test\00883005.prt.1 \\data\test\ 00883005 prt 1
00883005.test.prt 00883005.test prt
00883005.test.prt.1 00883005.test prt 1
c:\temp\00883005.test.prt.1 c:\temp\ 00883005.test prt 1
00883005.mp3 00883005 mp3
作業AutoHotkeyをコードは(下の人々のおかげで)です:
RegExMatch(filename, "^(.*\\)?(.*?)\.([^\.]*?)\.?(\b[0-9]+)?$", data)
outputdebug % "dir = " data1
outputdebug % "base = " data2
outputdebug % "ext = " data3
outputdebug % "num = " data4
あなたが何語これでやっている?それを行うもっと良い方法があるかもしれません。 –
私はAutoHotkeyを使用しています – panofish