Refactor regexes as verbatim strings.

This commit is contained in:
2017-12-24 20:26:23 +00:00
parent d5cf1f5743
commit 79cd1f96fd
11 changed files with 100 additions and 100 deletions

View File

@@ -65,43 +65,43 @@ namespace DiscImageChef.DiscImages
/// <summary>Mode 2 track, raw, 2352 bytes/sector</summary> /// <summary>Mode 2 track, raw, 2352 bytes/sector</summary>
const string CDRDAO_TRACK_TYPE_MODE2_RAW = "MODE2_RAW"; const string CDRDAO_TRACK_TYPE_MODE2_RAW = "MODE2_RAW";
const string REGEX_COMMENT = "^\\s*\\/{2}(?<comment>.+)$"; const string REGEX_COMMENT = @"^\s*\/{2}(?<comment>.+)$";
const string REGEX_COPY = "^\\s*(?<no>NO)?\\s*COPY"; const string REGEX_COPY = @"^\s*(?<no>NO)?\s*COPY";
const string REGEX_DISCTYPE = "^\\s*(?<type>(CD_DA|CD_ROM_XA|CD_ROM|CD_I))"; const string REGEX_DISCTYPE = @"^\s*(?<type>(CD_DA|CD_ROM_XA|CD_ROM|CD_I))";
const string REGEX_EMPHASIS = "^\\s*(?<no>NO)?\\s*PRE_EMPHASIS"; const string REGEX_EMPHASIS = @"^\s*(?<no>NO)?\s*PRE_EMPHASIS";
const string REGEX_FILE_AUDIO = const string REGEX_FILE_AUDIO =
"^\\s*(AUDIO)?FILE\\s*\"(?<filename>.+)\"\\s*(#(?<base_offset>\\d+))?\\s*((?<start>[\\d]+:[\\d]+:[\\d]+)|(?<start_num>\\d+))\\s*(?<length>[\\d]+:[\\d]+:[\\d]+)?" @"^\s*(AUDIO)?FILE\s*""(?<filename>.+)""\s*(#(?<base_offset>\d+))?\s*((?<start>[\d]+:[\d]+:[\d]+)|(?<start_num>\d+))\s*(?<length>[\d]+:[\d]+:[\d]+)?"
; ;
const string REGEX_FILE_DATA = const string REGEX_FILE_DATA =
"^\\s*DATAFILE\\s*\"(?<filename>.+)\"\\s*(#(?<base_offset>\\d+))?\\s*(?<length>[\\d]+:[\\d]+:[\\d]+)?"; @"^\s*DATAFILE\s*""(?<filename>.+)""\s*(#(?<base_offset>\d+))?\s*(?<length>[\d]+:[\d]+:[\d]+)?";
const string REGEX_INDEX = "^\\s*INDEX\\s*(?<address>\\d+:\\d+:\\d+)"; const string REGEX_INDEX = @"^\s*INDEX\s*(?<address>\d+:\d+:\d+)";
const string REGEX_ISRC = "^\\s*ISRC\\s*\"(?<isrc>[A-Z0-9]{5,5}[0-9]{7,7})\""; const string REGEX_ISRC = @"^\s*ISRC\s*""(?<isrc>[A-Z0-9]{5,5}[0-9]{7,7})""";
const string REGEX_MCN = "^\\s*CATALOG\\s*\"(?<catalog>[\\d]{13,13})\""; const string REGEX_MCN = @"^\s*CATALOG\s*""(?<catalog>[\d]{13,13})""";
const string REGEX_PREGAP = "^\\s*START\\s*(?<address>\\d+:\\d+:\\d+)?"; const string REGEX_PREGAP = @"^\s*START\s*(?<address>\d+:\d+:\d+)?";
const string REGEX_STEREO = "^\\s*(?<num>(TWO|FOUR))_CHANNEL_AUDIO"; const string REGEX_STEREO = @"^\s*(?<num>(TWO|FOUR))_CHANNEL_AUDIO";
const string REGEX_TRACK = const string REGEX_TRACK =
"^\\s*TRACK\\s*(?<type>(AUDIO|MODE1_RAW|MODE1|MODE2_FORM1|MODE2_FORM2|MODE2_FORM_MIX|MODE2_RAW|MODE2))\\s*(?<subchan>(RW_RAW|RW))?" @"^\s*TRACK\s*(?<type>(AUDIO|MODE1_RAW|MODE1|MODE2_FORM1|MODE2_FORM2|MODE2_FORM_MIX|MODE2_RAW|MODE2))\s*(?<subchan>(RW_RAW|RW))?"
; ;
const string REGEX_ZERO_AUDIO = "^\\s*SILENCE\\s*(?<length>\\d+:\\d+:\\d+)"; const string REGEX_ZERO_AUDIO = @"^\s*SILENCE\s*(?<length>\d+:\d+:\d+)";
const string REGEX_ZERO_DATA = "^\\s*ZERO\\s*(?<length>\\d+:\\d+:\\d+)"; const string REGEX_ZERO_DATA = @"^\s*ZERO\s*(?<length>\d+:\d+:\d+)";
const string REGEX_ZERO_PREGAP = "^\\s*PREGAP\\s*(?<length>\\d+:\\d+:\\d+)"; const string REGEX_ZERO_PREGAP = @"^\s*PREGAP\s*(?<length>\d+:\d+:\d+)";
// CD-Text // CD-Text
const string REGEX_ARRANGER = "^\\s*ARRANGER\\s*\"(?<arranger>.+)\""; const string REGEX_ARRANGER = @"^\s*ARRANGER\s*""(?<arranger>.+)""";
const string REGEX_COMPOSER = "^\\s*COMPOSER\\s*\"(?<composer>.+)\""; const string REGEX_COMPOSER = @"^\s*COMPOSER\s*""(?<composer>.+)""";
const string REGEX_DISC_ID = "^\\s*DISC_ID\\s*\"(?<discid>.+)\""; const string REGEX_DISC_ID = @"^\s*DISC_ID\s*""(?<discid>.+)""";
const string REGEX_MESSAGE = "^\\s*MESSAGE\\s*\"(?<message>.+)\""; const string REGEX_MESSAGE = @"^\s*MESSAGE\s*""(?<message>.+)""";
const string REGEX_PERFORMER = "^\\s*PERFORMER\\s*\"(?<performer>.+)\""; const string REGEX_PERFORMER = @"^\s*PERFORMER\s*""(?<performer>.+)""";
const string REGEX_SONGWRITER = "^\\s*SONGWRITER\\s*\"(?<songwriter>.+)\""; const string REGEX_SONGWRITER = @"^\s*SONGWRITER\s*""(?<songwriter>.+)""";
const string REGEX_TITLE = "^\\s*TITLE\\s*\"(?<title>.+)\""; const string REGEX_TITLE = @"^\s*TITLE\s*""(?<title>.+)""";
const string REGEX_UPC = "^\\s*UPC_EAN\\s*\"(?<catalog>[\\d]{13,13})\""; const string REGEX_UPC = @"^\s*UPC_EAN\s*""(?<catalog>[\d]{13,13})""";
// Unused // Unused
const string REGEX_CD_TEXT = "^\\s*CD_TEXT\\s*\\{"; const string REGEX_CD_TEXT = @"^\s*CD_TEXT\s*\{";
const string REGEX_CLOSURE = "^\\s*\\}"; const string REGEX_CLOSURE = @"^\s*\}";
const string REGEX_LANGUAGE = "^\\s*LANGUAGE\\s*(?<code>\\d+)\\s*\\{"; const string REGEX_LANGUAGE = @"^\s*LANGUAGE\s*(?<code>\d+)\s*\{";
const string REGEX_LANGUAGE_MAP = "^\\s*LANGUAGE_MAP\\s*\\{"; const string REGEX_LANGUAGE_MAP = @"^\s*LANGUAGE_MAP\s*\{";
const string REGEX_LANGUAGE_MAPPING = "^\\s*(?<code>\\d+)\\s?\\:\\s?(?<language>\\d+|\\w+)"; const string REGEX_LANGUAGE_MAPPING = @"^\s*(?<code>\d+)\s?\:\s?(?<language>\d+|\w+)";
Filter cdrdaoFilter; Filter cdrdaoFilter;
CdrdaoDisc discimage; CdrdaoDisc discimage;

View File

@@ -146,29 +146,29 @@ namespace DiscImageChef.DiscImages
/// <summary>DiskType.BDRE</summary> /// <summary>DiskType.BDRE</summary>
const string CDRWIN_DISK_TYPE_BDREDL = "BD-RE DL"; const string CDRWIN_DISK_TYPE_BDREDL = "BD-RE DL";
const string REGEX_SESSION = "\\bREM\\s+SESSION\\s+(?<number>\\d+).*$"; const string REGEX_SESSION = @"\bREM\s+SESSION\s+(?<number>\d+).*$";
const string REGEX_MEDIA_TYPE = "\\bREM\\s+ORIGINAL MEDIA-TYPE:\\s+(?<mediatype>.+)$"; const string REGEX_MEDIA_TYPE = @"\bREM\s+ORIGINAL MEDIA-TYPE:\s+(?<mediatype>.+)$";
const string REGEX_LEAD_OUT = "\\bREM\\s+LEAD-OUT\\s+(?<msf>[\\d]+:[\\d]+:[\\d]+)$"; const string REGEX_LEAD_OUT = @"\bREM\s+LEAD-OUT\s+(?<msf>[\d]+:[\d]+:[\d]+)$";
// Not checked // Not checked
const string REGEX_LBA = "\\bREM MSF:\\s+(?<msf>[\\d]+:[\\d]+:[\\d]+)\\s+=\\s+LBA:\\s+(?<lba>[\\d]+)$"; const string REGEX_LBA = @"\bREM MSF:\s+(?<msf>[\d]+:[\d]+:[\d]+)\s+=\s+LBA:\s+(?<lba>[\d]+)$";
const string REGEX_DISC_ID = "\\bDISC_ID\\s+(?<diskid>[\\da-f]{8})$"; const string REGEX_DISC_ID = @"\bDISC_ID\s+(?<diskid>[\da-f]{8})$";
const string REGEX_BARCODE = "\\bUPC_EAN\\s+(?<barcode>[\\d]{12,13})$"; const string REGEX_BARCODE = @"\bUPC_EAN\s+(?<barcode>[\d]{12,13})$";
const string REGEX_COMMENT = "\\bREM\\s+(?<comment>.+)$"; const string REGEX_COMMENT = @"\bREM\s+(?<comment>.+)$";
const string REGEX_CDTEXT = "\\bCDTEXTFILE\\s+(?<filename>.+)$"; const string REGEX_CDTEXT = @"\bCDTEXTFILE\s+(?<filename>.+)$";
const string REGEX_MCN = "\\bCATALOG\\s+(?<catalog>\\d{13})$"; const string REGEX_MCN = @"\bCATALOG\s+(?<catalog>\d{13})$";
const string REGEX_TITLE = "\\bTITLE\\s+(?<title>.+)$"; const string REGEX_TITLE = @"\bTITLE\s+(?<title>.+)$";
const string REGEX_GENRE = "\\bGENRE\\s+(?<genre>.+)$"; const string REGEX_GENRE = @"\bGENRE\s+(?<genre>.+)$";
const string REGEX_ARRANGER = "\\bARRANGER\\s+(?<arranger>.+)$"; const string REGEX_ARRANGER = @"\bARRANGER\s+(?<arranger>.+)$";
const string REGEX_COMPOSER = "\\bCOMPOSER\\s+(?<composer>.+)$"; const string REGEX_COMPOSER = @"\bCOMPOSER\s+(?<composer>.+)$";
const string REGEX_PERFORMER = "\\bPERFORMER\\s+(?<performer>.+)$"; const string REGEX_PERFORMER = @"\bPERFORMER\s+(?<performer>.+)$";
const string REGEX_SONGWRITER = "\\bSONGWRITER\\s+(?<songwriter>.+)$"; const string REGEX_SONGWRITER = @"\bSONGWRITER\s+(?<songwriter>.+)$";
const string REGEX_FILE = "\\bFILE\\s+(?<filename>.+)\\s+(?<type>\\S+)$"; const string REGEX_FILE = @"\bFILE\s+(?<filename>.+)\s+(?<type>\S+)$";
const string REGEX_TRACK = "\\bTRACK\\s+(?<number>\\d+)\\s+(?<type>\\S+)$"; const string REGEX_TRACK = @"\bTRACK\s+(?<number>\d+)\s+(?<type>\S+)$";
const string REGEX_ISRC = "\\bISRC\\s+(?<isrc>\\w{12})$"; const string REGEX_ISRC = @"\bISRC\s+(?<isrc>\w{12})$";
const string REGEX_INDEX = "\\bINDEX\\s+(?<index>\\d+)\\s+(?<msf>[\\d]+:[\\d]+:[\\d]+)$"; const string REGEX_INDEX = @"\bINDEX\s+(?<index>\d+)\s+(?<msf>[\d]+:[\d]+:[\d]+)$";
const string REGEX_PREGAP = "\\bPREGAP\\s+(?<msf>[\\d]+:[\\d]+:[\\d]+)$"; const string REGEX_PREGAP = @"\bPREGAP\s+(?<msf>[\d]+:[\d]+:[\d]+)$";
const string REGEX_POSTGAP = "\\bPOSTGAP\\s+(?<msf>[\\d]+:[\\d]+:[\\d]+)$"; const string REGEX_POSTGAP = @"\bPOSTGAP\s+(?<msf>[\d]+:[\d]+:[\d]+)$";
const string REGEX_FLAGS = "\\bFLAGS\\s+(((?<dcp>DCP)|(?<quad>4CH)|(?<pre>PRE)|(?<scms>SCMS))\\s*)+$"; const string REGEX_FLAGS = @"\bFLAGS\s+(((?<dcp>DCP)|(?<quad>4CH)|(?<pre>PRE)|(?<scms>SCMS))\s*)+$";
Filter cdrwinFilter; Filter cdrwinFilter;
StreamReader cueStream; StreamReader cueStream;

View File

@@ -74,14 +74,14 @@ namespace DiscImageChef.DiscImages
const uint AV_LASER_DISC_METADATA = 0x41564C44; const uint AV_LASER_DISC_METADATA = 0x41564C44;
const string REGEX_METADATA_HDD = const string REGEX_METADATA_HDD =
"CYLS:(?<cylinders>\\d+),HEADS:(?<heads>\\d+),SECS:(?<sectors>\\d+),BPS:(?<bps>\\d+)"; @"CYLS:(?<cylinders>\d+),HEADS:(?<heads>\d+),SECS:(?<sectors>\d+),BPS:(?<bps>\d+)";
const string REGEX_METADATA_CDROM = const string REGEX_METADATA_CDROM =
"TRACK:(?<track>\\d+) TYPE:(?<track_type>\\S+) SUBTYPE:(?<sub_type>\\S+) FRAMES:(?<frames>\\d+)"; @"TRACK:(?<track>\d+) TYPE:(?<track_type>\S+) SUBTYPE:(?<sub_type>\S+) FRAMES:(?<frames>\d+)";
const string REGEX_METADATA_CDROM2 = const string REGEX_METADATA_CDROM2 =
"TRACK:(?<track>\\d+) TYPE:(?<track_type>\\S+) SUBTYPE:(?<sub_type>\\S+) FRAMES:(?<frames>\\d+) PREGAP:(?<pregap>\\d+) PGTYPE:(?<pgtype>\\S+) PGSUB:(?<pgsub>\\S+) POSTGAP:(?<postgap>\\d+)" @"TRACK:(?<track>\d+) TYPE:(?<track_type>\S+) SUBTYPE:(?<sub_type>\S+) FRAMES:(?<frames>\d+) PREGAP:(?<pregap>\d+) PGTYPE:(?<pgtype>\S+) PGSUB:(?<pgsub>\S+) POSTGAP:(?<postgap>\d+)"
; ;
const string REGEX_METADATA_GDROM = const string REGEX_METADATA_GDROM =
"TRACK:(?<track>\\d+) TYPE:(?<track_type>\\S+) SUBTYPE:(?<sub_type>\\S+) FRAMES:(?<frames>\\d+) PAD:(?<pad>\\d+) PREGAP:(?<pregap>\\d+) PGTYPE:(?<pgtype>\\S+) PGSUB:(?<pgsub>\\S+) POSTGAP:(?<postgap>\\d+)" @"TRACK:(?<track>\d+) TYPE:(?<track_type>\S+) SUBTYPE:(?<sub_type>\S+) FRAMES:(?<frames>\d+) PAD:(?<pad>\d+) PREGAP:(?<pregap>\d+) PGTYPE:(?<pgtype>\S+) PGSUB:(?<pgsub>\S+) POSTGAP:(?<postgap>\d+)"
; ;
const string TRACK_TYPE_MODE1 = "MODE1"; const string TRACK_TYPE_MODE1 = "MODE1";

View File

@@ -45,36 +45,36 @@ namespace DiscImageChef.DiscImages
{ {
public class CloneCd : ImagePlugin public class CloneCd : ImagePlugin
{ {
const string CCD_IDENTIFIER = "^\\s*\\[CloneCD\\]"; const string CCD_IDENTIFIER = @"^\s*\[CloneCD\]";
const string DISC_IDENTIFIER = "^\\s*\\[Disc\\]"; const string DISC_IDENTIFIER = @"^\s*\[Disc\]";
const string SESSION_IDENTIFIER = "^\\s*\\[Session\\s*(?<number>\\d+)\\]"; const string SESSION_IDENTIFIER = @"^\s*\[Session\s*(?<number>\d+)\]";
const string ENTRY_IDENTIFIER = "^\\s*\\[Entry\\s*(?<number>\\d+)\\]"; const string ENTRY_IDENTIFIER = @"^\s*\[Entry\s*(?<number>\d+)\]";
const string TRACK_IDENTIFIER = "^\\s*\\[TRACK\\s*(?<number>\\d+)\\]"; const string TRACK_IDENTIFIER = @"^\s*\[TRACK\s*(?<number>\d+)\]";
const string CDTEXT_IDENTIFIER = "^\\s*\\[CDText\\]"; const string CDTEXT_IDENTIFIER = @"^\s*\[CDText\]";
const string CCD_VERSION = "^\\s*Version\\s*=\\s*(?<value>\\d+)"; const string CCD_VERSION = @"^\s*Version\s*=\s*(?<value>\d+)";
const string DISC_ENTRIES = "^\\s*TocEntries\\s*=\\s*(?<value>\\d+)"; const string DISC_ENTRIES = @"^\s*TocEntries\s*=\s*(?<value>\d+)";
const string DISC_SESSIONS = "^\\s*Sessions\\s*=\\s*(?<value>\\d+)"; const string DISC_SESSIONS = @"^\s*Sessions\s*=\s*(?<value>\d+)";
const string DISC_SCRAMBLED = "^\\s*DataTracksScrambled\\s*=\\s*(?<value>\\d+)"; const string DISC_SCRAMBLED = @"^\s*DataTracksScrambled\s*=\s*(?<value>\d+)";
const string CDTEXT_LENGTH = "^\\s*CDTextLength\\s*=\\s*(?<value>\\d+)"; const string CDTEXT_LENGTH = @"^\s*CDTextLength\s*=\s*(?<value>\d+)";
const string DISC_CATALOG = "^\\s*CATALOG\\s*=\\s*(?<value>\\w+)"; const string DISC_CATALOG = @"^\s*CATALOG\s*=\s*(?<value>\w+)";
const string SESSION_PREGAP = "^\\s*PreGapMode\\s*=\\s*(?<value>\\d+)"; const string SESSION_PREGAP = @"^\s*PreGapMode\s*=\s*(?<value>\d+)";
const string SESSION_SUBCHANNEL = "^\\s*PreGapSubC\\s*=\\s*(?<value>\\d+)"; const string SESSION_SUBCHANNEL = @"^\s*PreGapSubC\s*=\s*(?<value>\d+)";
const string ENTRY_SESSION = "^\\s*Session\\s*=\\s*(?<value>\\d+)"; const string ENTRY_SESSION = @"^\s*Session\s*=\s*(?<value>\d+)";
const string ENTRY_POINT = "^\\s*Point\\s*=\\s*(?<value>[\\w+]+)"; const string ENTRY_POINT = @"^\s*Point\s*=\s*(?<value>[\w+]+)";
const string ENTRY_ADR = "^\\s*ADR\\s*=\\s*(?<value>\\w+)"; const string ENTRY_ADR = @"^\s*ADR\s*=\s*(?<value>\w+)";
const string ENTRY_CONTROL = "^\\s*Control\\s*=\\s*(?<value>\\w+)"; const string ENTRY_CONTROL = @"^\s*Control\s*=\s*(?<value>\w+)";
const string ENTRY_TRACKNO = "^\\s*TrackNo\\s*=\\s*(?<value>\\d+)"; const string ENTRY_TRACKNO = @"^\s*TrackNo\s*=\s*(?<value>\d+)";
const string ENTRY_AMIN = "^\\s*AMin\\s*=\\s*(?<value>\\d+)"; const string ENTRY_AMIN = @"^\s*AMin\s*=\s*(?<value>\d+)";
const string ENTRY_ASEC = "^\\s*ASec\\s*=\\s*(?<value>\\d+)"; const string ENTRY_ASEC = @"^\s*ASec\s*=\s*(?<value>\d+)";
const string ENTRY_AFRAME = "^\\s*AFrame\\s*=\\s*(?<value>\\d+)"; const string ENTRY_AFRAME = @"^\s*AFrame\s*=\s*(?<value>\d+)";
const string ENTRY_ALBA = "^\\s*ALBA\\s*=\\s*(?<value>-?\\d+)"; const string ENTRY_ALBA = @"^\s*ALBA\s*=\s*(?<value>-?\d+)";
const string ENTRY_ZERO = "^\\s*Zero\\s*=\\s*(?<value>\\d+)"; const string ENTRY_ZERO = @"^\s*Zero\s*=\s*(?<value>\d+)";
const string ENTRY_PMIN = "^\\s*PMin\\s*=\\s*(?<value>\\d+)"; const string ENTRY_PMIN = @"^\s*PMin\s*=\s*(?<value>\d+)";
const string ENTRY_PSEC = "^\\s*PSec\\s*=\\s*(?<value>\\d+)"; const string ENTRY_PSEC = @"^\s*PSec\s*=\s*(?<value>\d+)";
const string ENTRY_PFRAME = "^\\s*PFrame\\s*=\\s*(?<value>\\d+)"; const string ENTRY_PFRAME = @"^\s*PFrame\s*=\s*(?<value>\d+)";
const string ENTRY_PLBA = "^\\s*PLBA\\s*=\\s*(?<value>\\d+)"; const string ENTRY_PLBA = @"^\s*PLBA\s*=\s*(?<value>\d+)";
const string CDTEXT_ENTRIES = "^\\s*Entries\\s*=\\s*(?<value>\\d+)"; const string CDTEXT_ENTRIES = @"^\s*Entries\s*=\s*(?<value>\d+)";
const string CDTEXT_ENTRY = "^\\s*Entry\\s*(?<number>\\d+)\\s*=\\s*(?<value>([0-9a-fA-F]+\\s*)+)"; const string CDTEXT_ENTRY = @"^\s*Entry\s*(?<number>\d+)\s*=\s*(?<value>([0-9a-fA-F]+\s*)+)";
string catalog; // TODO: Use it string catalog; // TODO: Use it
Filter ccdFilter; Filter ccdFilter;

View File

@@ -322,7 +322,7 @@ namespace DiscImageChef.DiscImages
string dArt = StringHandlers.PascalToString(dartRsrc.GetResource(dartRsrc.GetIds()[0]), string dArt = StringHandlers.PascalToString(dartRsrc.GetResource(dartRsrc.GetIds()[0]),
Encoding.GetEncoding("macintosh")); Encoding.GetEncoding("macintosh"));
const string DART_REGEX = const string DART_REGEX =
"(?<version>\\S+), tag checksum=\\$(?<tagchk>[0123456789ABCDEF]{8}), data checksum=\\$(?<datachk>[0123456789ABCDEF]{8})$"; @"(?<version>\S+), tag checksum=\$(?<tagchk>[0123456789ABCDEF]{8}), data checksum=\$(?<datachk>[0123456789ABCDEF]{8})$";
Regex dArtEx = new Regex(DART_REGEX); Regex dArtEx = new Regex(DART_REGEX);
Match dArtMatch = dArtEx.Match(dArt); Match dArtMatch = dArtEx.Match(dArt);

View File

@@ -479,7 +479,7 @@ namespace DiscImageChef.DiscImages
string dCpy = StringHandlers.PascalToString(dCpyRsrc.GetResource(dCpyRsrc.GetIds()[0]), string dCpy = StringHandlers.PascalToString(dCpyRsrc.GetResource(dCpyRsrc.GetIds()[0]),
Encoding.GetEncoding("macintosh")); Encoding.GetEncoding("macintosh"));
string dCpyRegEx = string dCpyRegEx =
"(?<application>\\S+)\\s(?<version>\\S+)\\rData checksum=\\$(?<checksum>\\S+)$"; @"(?<application>\S+)\s(?<version>\S+)\rData checksum=\$(?<checksum>\S+)$";
Regex dCpyEx = new Regex(dCpyRegEx); Regex dCpyEx = new Regex(dCpyRegEx);
Match dCpyMatch = dCpyEx.Match(dCpy); Match dCpyMatch = dCpyEx.Match(dCpy);

View File

@@ -44,7 +44,7 @@ namespace DiscImageChef.DiscImages
{ {
public class DriDiskCopy : ImagePlugin public class DriDiskCopy : ImagePlugin
{ {
const string REGEX_DRI = "DiskImage\\s(?<version>\\d+.\\d+)\\s\\(C\\)\\s\\d+\\,*\\d*\\s+Digital Research Inc"; const string REGEX_DRI = @"DiskImage\s(?<version>\d+.\d+)\s\(C\)\s\d+\,*\d*\s+Digital Research Inc";
/// <summary>Disk image file</summary> /// <summary>Disk image file</summary>
Filter driImageFilter; Filter driImageFilter;

View File

@@ -47,7 +47,7 @@ namespace DiscImageChef.DiscImages
public class Gdi : ImagePlugin public class Gdi : ImagePlugin
{ {
const string REGEX_TRACK = const string REGEX_TRACK =
"\\s?(?<track>\\d+)\\s+(?<start>\\d+)\\s(?<flags>\\d)\\s(?<type>2352|2048)\\s(?<filename>.+)\\s(?<offset>\\d+)$" @"\s?(?<track>\d+)\s+(?<start>\d+)\s(?<flags>\d)\s(?<type>2352|2048)\s(?<filename>.+)\s(?<offset>\d+)$"
; ;
ulong densitySeparationSectors; ulong densitySeparationSectors;

View File

@@ -47,7 +47,7 @@ namespace DiscImageChef.DiscImages
const byte SECTOR_HEAD_MAP_MASK = 0x40; const byte SECTOR_HEAD_MAP_MASK = 0x40;
const byte COMMENT_END = 0x1A; const byte COMMENT_END = 0x1A;
const string REGEX_HEADER = const string REGEX_HEADER =
"IMD (?<version>\\d.\\d+):\\s+(?<day>\\d+)\\/\\s*(?<month>\\d+)\\/(?<year>\\d+)\\s+(?<hour>\\d+):(?<minute>\\d+):(?<second>\\d+)\\r\\n" @"IMD (?<version>\d.\d+):\s+(?<day>\d+)\/\s*(?<month>\d+)\/(?<year>\d+)\s+(?<hour>\d+):(?<minute>\d+):(?<second>\d+)\r\n"
; ;
List<byte[]> sectorsData; List<byte[]> sectorsData;

View File

@@ -45,7 +45,7 @@ namespace DiscImageChef.DiscImages
public class RayDim : ImagePlugin public class RayDim : ImagePlugin
{ {
const string REGEX_SIGNATURE = const string REGEX_SIGNATURE =
"Disk IMage VER (?<major>\\d).(?<minor>\\d) Copyright \\(C\\) (?<year>\\d{4}) Ray Arachelian, All Rights Reserved\\." @"Disk IMage VER (?<major>\d).(?<minor>\d) Copyright \(C\) (?<year>\d{4}) Ray Arachelian, All Rights Reserved\."
; ;
MemoryStream disk; MemoryStream disk;

View File

@@ -68,21 +68,21 @@ namespace DiscImageChef.DiscImages
const string DDF_MAGIC = "# Disk DescriptorFile"; const string DDF_MAGIC = "# Disk DescriptorFile";
const string REGEX_VERSION = "^\\s*version\\s*=\\s*(?<version>\\d+)$"; const string REGEX_VERSION = @"^\s*version\s*=\s*(?<version>\d+)$";
const string REGEX_CID = "^\\s*CID\\s*=\\s*(?<cid>[0123456789abcdef]{8})$"; const string REGEX_CID = @"^\s*CID\s*=\s*(?<cid>[0123456789abcdef]{8})$";
const string REGEX_CID_PARENT = "^\\s*parentCID\\s*=\\s*(?<cid>[0123456789abcdef]{8})$"; const string REGEX_CID_PARENT = @"^\s*parentCID\s*=\s*(?<cid>[0123456789abcdef]{8})$";
const string REGEX_TYPE = const string REGEX_TYPE =
"^\\s*createType\\s*=\\s*\\\"(?<type>custom|monolithicSparse|monolithicFlat|twoGbMaxExtentSparse|twoGbMaxExtentFlat|fullDevice|partitionedDevice|vmfs|vmfsPreallocated|vmfsEagerZeroedThick|vmfsThin|vmfsSparse|vmfsRDM|vmfsRawDeviceMap|vmfsRDMP|vmfsPassthroughRawDeviceMap|vmfsRaw|streamOptimized)\\\"$" @"^\s*createType\s*=\s*\""(?<type>custom|monolithicSparse|monolithicFlat|twoGbMaxExtentSparse|twoGbMaxExtentFlat|fullDevice|partitionedDevice|vmfs|vmfsPreallocated|vmfsEagerZeroedThick|vmfsThin|vmfsSparse|vmfsRDM|vmfsRawDeviceMap|vmfsRDMP|vmfsPassthroughRawDeviceMap|vmfsRaw|streamOptimized)\""$"
; ;
const string REGEX_EXTENT = const string REGEX_EXTENT =
"^\\s*(?<access>(RW|RDONLY|NOACCESS))\\s+(?<sectors>\\d+)\\s+(?<type>(FLAT|SPARSE|ZERO|VMFS|VMFSSPARSE|VMFSRDM|VMFSRAW))\\s+\\\"(?<filename>.+)\\\"(\\s*(?<offset>\\d+))?$" @"^\s*(?<access>(RW|RDONLY|NOACCESS))\s+(?<sectors>\d+)\s+(?<type>(FLAT|SPARSE|ZERO|VMFS|VMFSSPARSE|VMFSRDM|VMFSRAW))\s+\""(?<filename>.+)\""(\s*(?<offset>\d+))?$"
; ;
const string REGEX_DDB_TYPE = const string REGEX_DDB_TYPE =
"^\\s*ddb\\.adapterType\\s*=\\s*\\\"(?<type>ide|buslogic|lsilogic|legacyESX)\\\"$"; @"^\s*ddb\.adapterType\s*=\s*\""(?<type>ide|buslogic|lsilogic|legacyESX)\""$";
const string REGEX_DDB_SECTORS = "^\\s*ddb\\.geometry\\.sectors\\s*=\\s*\\\"(?<sectors>\\d+)\\\"$"; const string REGEX_DDB_SECTORS = @"^\s*ddb\.geometry\.sectors\s*=\s*\""(?<sectors>\d+)\""$";
const string REGEX_DDB_HEADS = "^\\s*ddb\\.geometry\\.heads\\s*=\\s*\\\"(?<heads>\\d+)\\\"$"; const string REGEX_DDB_HEADS = @"^\s*ddb\.geometry\.heads\s*=\s*\""(?<heads>\d+)\""$";
const string REGEX_DDB_CYLINDERS = "^\\s*ddb\\.geometry\\.cylinders\\s*=\\s*\\\"(?<cylinders>\\d+)\\\"$"; const string REGEX_DDB_CYLINDERS = @"^\s*ddb\.geometry\.cylinders\s*=\s*\""(?<cylinders>\d+)\""$";
const string PARENT_REGEX = "^\\s*parentFileNameHint\\s*=\\s*\\\"(?<filename>.+)\\\"$"; const string PARENT_REGEX = @"^\s*parentFileNameHint\s*=\s*\""(?<filename>.+)\""$";
const uint FLAGS_VALID_NEW_LINE = 0x01; const uint FLAGS_VALID_NEW_LINE = 0x01;
const uint FLAGS_USE_REDUNDANT_TABLE = 0x02; const uint FLAGS_USE_REDUNDANT_TABLE = 0x02;