たとえば、次のような特定の構文で名前が付けられた MP3 ファイルがいくつかあります。
1 - セバスチャン・イングロッソ - Calling (Feat. Ryan Tedder)
ID3 タグからトラック、アーティスト、タイトルを読み取る小さなプログラムを C# で作成しました。私がやりたいことは、ファイルが実際に上記の構文で名前が付けられていることを検証できる正規表現を書くことです。
だから私は歌と呼ばれるクラスを持っています:
class Song
{
//Fields
private string _filename;
private string _title;
private string _artist;
//Properties
public string Filename
{
get { return _filename; }
set { _filename = value; }
}
public string Title
{
get { return _title; }
set { _title = value; }
}
public string Artist
{
get { return _artist; }
set { _artist = value; }
}
//Methods
public bool Parse(string strfile)
{
bool CheckFile;
Tags.ID3.ID3v1 Song = new Tags.ID3.ID3v1(strfile, true);
Filename = Song.FileName;
Title = Song.Title;
Artist = Song.Artist;
//Check File Name Formatting
string RegexBuilder = @"\d\s-\s" + Artist + @"\s-\s" + Title;
if (Regex.IsMatch(Filename, RegexBuilder))
{
CheckFile = true;
}
else
{
CheckFile = false;
}
return CheckFile;
}
したがって、ほとんどの場合、機能します。タイトルに (Feat. ) がある分、失敗します。私が思いつくことができる最も近いものは次のとおりです。
\d\s-\s\アーティスト\s-\s.*
どのテキストもテストに合格するため、これは明らかに機能しません。前もって感謝します。