From 79cd1f96fdccb68a16b54d73a26c7e634c2717dd Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 24 Dec 2017 20:26:23 +0000 Subject: [PATCH] Refactor regexes as verbatim strings. --- DiscImageChef.DiscImages/CDRDAO.cs | 56 +++++++++++------------ DiscImageChef.DiscImages/CDRWin.cs | 44 +++++++++--------- DiscImageChef.DiscImages/CHD.cs | 8 ++-- DiscImageChef.DiscImages/CloneCD.cs | 60 ++++++++++++------------- DiscImageChef.DiscImages/DART.cs | 2 +- DiscImageChef.DiscImages/DiskCopy42.cs | 2 +- DiscImageChef.DiscImages/DriDiskCopy.cs | 2 +- DiscImageChef.DiscImages/GDI.cs | 2 +- DiscImageChef.DiscImages/IMD.cs | 2 +- DiscImageChef.DiscImages/RayDIM.cs | 2 +- DiscImageChef.DiscImages/VMware.cs | 20 ++++----- 11 files changed, 100 insertions(+), 100 deletions(-) diff --git a/DiscImageChef.DiscImages/CDRDAO.cs b/DiscImageChef.DiscImages/CDRDAO.cs index c3b7f933..6d0f7330 100644 --- a/DiscImageChef.DiscImages/CDRDAO.cs +++ b/DiscImageChef.DiscImages/CDRDAO.cs @@ -65,43 +65,43 @@ namespace DiscImageChef.DiscImages /// Mode 2 track, raw, 2352 bytes/sector const string CDRDAO_TRACK_TYPE_MODE2_RAW = "MODE2_RAW"; - const string REGEX_COMMENT = "^\\s*\\/{2}(?.+)$"; - const string REGEX_COPY = "^\\s*(?NO)?\\s*COPY"; - const string REGEX_DISCTYPE = "^\\s*(?(CD_DA|CD_ROM_XA|CD_ROM|CD_I))"; - const string REGEX_EMPHASIS = "^\\s*(?NO)?\\s*PRE_EMPHASIS"; + const string REGEX_COMMENT = @"^\s*\/{2}(?.+)$"; + const string REGEX_COPY = @"^\s*(?NO)?\s*COPY"; + const string REGEX_DISCTYPE = @"^\s*(?(CD_DA|CD_ROM_XA|CD_ROM|CD_I))"; + const string REGEX_EMPHASIS = @"^\s*(?NO)?\s*PRE_EMPHASIS"; const string REGEX_FILE_AUDIO = - "^\\s*(AUDIO)?FILE\\s*\"(?.+)\"\\s*(#(?\\d+))?\\s*((?[\\d]+:[\\d]+:[\\d]+)|(?\\d+))\\s*(?[\\d]+:[\\d]+:[\\d]+)?" + @"^\s*(AUDIO)?FILE\s*""(?.+)""\s*(#(?\d+))?\s*((?[\d]+:[\d]+:[\d]+)|(?\d+))\s*(?[\d]+:[\d]+:[\d]+)?" ; const string REGEX_FILE_DATA = - "^\\s*DATAFILE\\s*\"(?.+)\"\\s*(#(?\\d+))?\\s*(?[\\d]+:[\\d]+:[\\d]+)?"; - const string REGEX_INDEX = "^\\s*INDEX\\s*(?
\\d+:\\d+:\\d+)"; - const string REGEX_ISRC = "^\\s*ISRC\\s*\"(?[A-Z0-9]{5,5}[0-9]{7,7})\""; - const string REGEX_MCN = "^\\s*CATALOG\\s*\"(?[\\d]{13,13})\""; - const string REGEX_PREGAP = "^\\s*START\\s*(?
\\d+:\\d+:\\d+)?"; - const string REGEX_STEREO = "^\\s*(?(TWO|FOUR))_CHANNEL_AUDIO"; + @"^\s*DATAFILE\s*""(?.+)""\s*(#(?\d+))?\s*(?[\d]+:[\d]+:[\d]+)?"; + const string REGEX_INDEX = @"^\s*INDEX\s*(?
\d+:\d+:\d+)"; + const string REGEX_ISRC = @"^\s*ISRC\s*""(?[A-Z0-9]{5,5}[0-9]{7,7})"""; + const string REGEX_MCN = @"^\s*CATALOG\s*""(?[\d]{13,13})"""; + const string REGEX_PREGAP = @"^\s*START\s*(?
\d+:\d+:\d+)?"; + const string REGEX_STEREO = @"^\s*(?(TWO|FOUR))_CHANNEL_AUDIO"; const string REGEX_TRACK = - "^\\s*TRACK\\s*(?(AUDIO|MODE1_RAW|MODE1|MODE2_FORM1|MODE2_FORM2|MODE2_FORM_MIX|MODE2_RAW|MODE2))\\s*(?(RW_RAW|RW))?" + @"^\s*TRACK\s*(?(AUDIO|MODE1_RAW|MODE1|MODE2_FORM1|MODE2_FORM2|MODE2_FORM_MIX|MODE2_RAW|MODE2))\s*(?(RW_RAW|RW))?" ; - const string REGEX_ZERO_AUDIO = "^\\s*SILENCE\\s*(?\\d+:\\d+:\\d+)"; - const string REGEX_ZERO_DATA = "^\\s*ZERO\\s*(?\\d+:\\d+:\\d+)"; - const string REGEX_ZERO_PREGAP = "^\\s*PREGAP\\s*(?\\d+:\\d+:\\d+)"; + const string REGEX_ZERO_AUDIO = @"^\s*SILENCE\s*(?\d+:\d+:\d+)"; + const string REGEX_ZERO_DATA = @"^\s*ZERO\s*(?\d+:\d+:\d+)"; + const string REGEX_ZERO_PREGAP = @"^\s*PREGAP\s*(?\d+:\d+:\d+)"; // CD-Text - const string REGEX_ARRANGER = "^\\s*ARRANGER\\s*\"(?.+)\""; - const string REGEX_COMPOSER = "^\\s*COMPOSER\\s*\"(?.+)\""; - const string REGEX_DISC_ID = "^\\s*DISC_ID\\s*\"(?.+)\""; - const string REGEX_MESSAGE = "^\\s*MESSAGE\\s*\"(?.+)\""; - const string REGEX_PERFORMER = "^\\s*PERFORMER\\s*\"(?.+)\""; - const string REGEX_SONGWRITER = "^\\s*SONGWRITER\\s*\"(?.+)\""; - const string REGEX_TITLE = "^\\s*TITLE\\s*\"(?.+)\""; - const string REGEX_UPC = "^\\s*UPC_EAN\\s*\"(?<catalog>[\\d]{13,13})\""; + const string REGEX_ARRANGER = @"^\s*ARRANGER\s*""(?<arranger>.+)"""; + const string REGEX_COMPOSER = @"^\s*COMPOSER\s*""(?<composer>.+)"""; + const string REGEX_DISC_ID = @"^\s*DISC_ID\s*""(?<discid>.+)"""; + const string REGEX_MESSAGE = @"^\s*MESSAGE\s*""(?<message>.+)"""; + const string REGEX_PERFORMER = @"^\s*PERFORMER\s*""(?<performer>.+)"""; + const string REGEX_SONGWRITER = @"^\s*SONGWRITER\s*""(?<songwriter>.+)"""; + const string REGEX_TITLE = @"^\s*TITLE\s*""(?<title>.+)"""; + const string REGEX_UPC = @"^\s*UPC_EAN\s*""(?<catalog>[\d]{13,13})"""; // Unused - const string REGEX_CD_TEXT = "^\\s*CD_TEXT\\s*\\{"; - const string REGEX_CLOSURE = "^\\s*\\}"; - const string REGEX_LANGUAGE = "^\\s*LANGUAGE\\s*(?<code>\\d+)\\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_CD_TEXT = @"^\s*CD_TEXT\s*\{"; + const string REGEX_CLOSURE = @"^\s*\}"; + const string REGEX_LANGUAGE = @"^\s*LANGUAGE\s*(?<code>\d+)\s*\{"; + const string REGEX_LANGUAGE_MAP = @"^\s*LANGUAGE_MAP\s*\{"; + const string REGEX_LANGUAGE_MAPPING = @"^\s*(?<code>\d+)\s?\:\s?(?<language>\d+|\w+)"; Filter cdrdaoFilter; CdrdaoDisc discimage; diff --git a/DiscImageChef.DiscImages/CDRWin.cs b/DiscImageChef.DiscImages/CDRWin.cs index ae8fae3a..b172856b 100644 --- a/DiscImageChef.DiscImages/CDRWin.cs +++ b/DiscImageChef.DiscImages/CDRWin.cs @@ -146,29 +146,29 @@ namespace DiscImageChef.DiscImages /// <summary>DiskType.BDRE</summary> const string CDRWIN_DISK_TYPE_BDREDL = "BD-RE DL"; - 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_LEAD_OUT = "\\bREM\\s+LEAD-OUT\\s+(?<msf>[\\d]+:[\\d]+:[\\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_LEAD_OUT = @"\bREM\s+LEAD-OUT\s+(?<msf>[\d]+:[\d]+:[\d]+)$"; // Not checked - 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_BARCODE = "\\bUPC_EAN\\s+(?<barcode>[\\d]{12,13})$"; - const string REGEX_COMMENT = "\\bREM\\s+(?<comment>.+)$"; - const string REGEX_CDTEXT = "\\bCDTEXTFILE\\s+(?<filename>.+)$"; - const string REGEX_MCN = "\\bCATALOG\\s+(?<catalog>\\d{13})$"; - const string REGEX_TITLE = "\\bTITLE\\s+(?<title>.+)$"; - const string REGEX_GENRE = "\\bGENRE\\s+(?<genre>.+)$"; - const string REGEX_ARRANGER = "\\bARRANGER\\s+(?<arranger>.+)$"; - const string REGEX_COMPOSER = "\\bCOMPOSER\\s+(?<composer>.+)$"; - const string REGEX_PERFORMER = "\\bPERFORMER\\s+(?<performer>.+)$"; - const string REGEX_SONGWRITER = "\\bSONGWRITER\\s+(?<songwriter>.+)$"; - const string REGEX_FILE = "\\bFILE\\s+(?<filename>.+)\\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_INDEX = "\\bINDEX\\s+(?<index>\\d+)\\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_FLAGS = "\\bFLAGS\\s+(((?<dcp>DCP)|(?<quad>4CH)|(?<pre>PRE)|(?<scms>SCMS))\\s*)+$"; + 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_BARCODE = @"\bUPC_EAN\s+(?<barcode>[\d]{12,13})$"; + const string REGEX_COMMENT = @"\bREM\s+(?<comment>.+)$"; + const string REGEX_CDTEXT = @"\bCDTEXTFILE\s+(?<filename>.+)$"; + const string REGEX_MCN = @"\bCATALOG\s+(?<catalog>\d{13})$"; + const string REGEX_TITLE = @"\bTITLE\s+(?<title>.+)$"; + const string REGEX_GENRE = @"\bGENRE\s+(?<genre>.+)$"; + const string REGEX_ARRANGER = @"\bARRANGER\s+(?<arranger>.+)$"; + const string REGEX_COMPOSER = @"\bCOMPOSER\s+(?<composer>.+)$"; + const string REGEX_PERFORMER = @"\bPERFORMER\s+(?<performer>.+)$"; + const string REGEX_SONGWRITER = @"\bSONGWRITER\s+(?<songwriter>.+)$"; + const string REGEX_FILE = @"\bFILE\s+(?<filename>.+)\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_INDEX = @"\bINDEX\s+(?<index>\d+)\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_FLAGS = @"\bFLAGS\s+(((?<dcp>DCP)|(?<quad>4CH)|(?<pre>PRE)|(?<scms>SCMS))\s*)+$"; Filter cdrwinFilter; StreamReader cueStream; diff --git a/DiscImageChef.DiscImages/CHD.cs b/DiscImageChef.DiscImages/CHD.cs index efca3b61..d50e32b2 100644 --- a/DiscImageChef.DiscImages/CHD.cs +++ b/DiscImageChef.DiscImages/CHD.cs @@ -74,14 +74,14 @@ namespace DiscImageChef.DiscImages const uint AV_LASER_DISC_METADATA = 0x41564C44; 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 = - "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 = - "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 = - "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"; diff --git a/DiscImageChef.DiscImages/CloneCD.cs b/DiscImageChef.DiscImages/CloneCD.cs index fff8c56f..2650ab76 100644 --- a/DiscImageChef.DiscImages/CloneCD.cs +++ b/DiscImageChef.DiscImages/CloneCD.cs @@ -45,36 +45,36 @@ namespace DiscImageChef.DiscImages { public class CloneCd : ImagePlugin { - const string CCD_IDENTIFIER = "^\\s*\\[CloneCD\\]"; - const string DISC_IDENTIFIER = "^\\s*\\[Disc\\]"; - const string SESSION_IDENTIFIER = "^\\s*\\[Session\\s*(?<number>\\d+)\\]"; - const string ENTRY_IDENTIFIER = "^\\s*\\[Entry\\s*(?<number>\\d+)\\]"; - const string TRACK_IDENTIFIER = "^\\s*\\[TRACK\\s*(?<number>\\d+)\\]"; - const string CDTEXT_IDENTIFIER = "^\\s*\\[CDText\\]"; - const string CCD_VERSION = "^\\s*Version\\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_SCRAMBLED = "^\\s*DataTracksScrambled\\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 SESSION_PREGAP = "^\\s*PreGapMode\\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_POINT = "^\\s*Point\\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_TRACKNO = "^\\s*TrackNo\\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_AFRAME = "^\\s*AFrame\\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_PMIN = "^\\s*PMin\\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_PLBA = "^\\s*PLBA\\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 CCD_IDENTIFIER = @"^\s*\[CloneCD\]"; + const string DISC_IDENTIFIER = @"^\s*\[Disc\]"; + const string SESSION_IDENTIFIER = @"^\s*\[Session\s*(?<number>\d+)\]"; + const string ENTRY_IDENTIFIER = @"^\s*\[Entry\s*(?<number>\d+)\]"; + const string TRACK_IDENTIFIER = @"^\s*\[TRACK\s*(?<number>\d+)\]"; + const string CDTEXT_IDENTIFIER = @"^\s*\[CDText\]"; + const string CCD_VERSION = @"^\s*Version\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_SCRAMBLED = @"^\s*DataTracksScrambled\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 SESSION_PREGAP = @"^\s*PreGapMode\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_POINT = @"^\s*Point\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_TRACKNO = @"^\s*TrackNo\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_AFRAME = @"^\s*AFrame\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_PMIN = @"^\s*PMin\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_PLBA = @"^\s*PLBA\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*)+)"; string catalog; // TODO: Use it Filter ccdFilter; diff --git a/DiscImageChef.DiscImages/DART.cs b/DiscImageChef.DiscImages/DART.cs index c677d7b1..09776ae6 100644 --- a/DiscImageChef.DiscImages/DART.cs +++ b/DiscImageChef.DiscImages/DART.cs @@ -322,7 +322,7 @@ namespace DiscImageChef.DiscImages string dArt = StringHandlers.PascalToString(dartRsrc.GetResource(dartRsrc.GetIds()[0]), Encoding.GetEncoding("macintosh")); 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); Match dArtMatch = dArtEx.Match(dArt); diff --git a/DiscImageChef.DiscImages/DiskCopy42.cs b/DiscImageChef.DiscImages/DiskCopy42.cs index 44f075c8..33b43fcc 100644 --- a/DiscImageChef.DiscImages/DiskCopy42.cs +++ b/DiscImageChef.DiscImages/DiskCopy42.cs @@ -479,7 +479,7 @@ namespace DiscImageChef.DiscImages string dCpy = StringHandlers.PascalToString(dCpyRsrc.GetResource(dCpyRsrc.GetIds()[0]), Encoding.GetEncoding("macintosh")); 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); Match dCpyMatch = dCpyEx.Match(dCpy); diff --git a/DiscImageChef.DiscImages/DriDiskCopy.cs b/DiscImageChef.DiscImages/DriDiskCopy.cs index 5aaa86b0..6d11e788 100644 --- a/DiscImageChef.DiscImages/DriDiskCopy.cs +++ b/DiscImageChef.DiscImages/DriDiskCopy.cs @@ -44,7 +44,7 @@ namespace DiscImageChef.DiscImages { 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> Filter driImageFilter; diff --git a/DiscImageChef.DiscImages/GDI.cs b/DiscImageChef.DiscImages/GDI.cs index 440c40c4..077db536 100644 --- a/DiscImageChef.DiscImages/GDI.cs +++ b/DiscImageChef.DiscImages/GDI.cs @@ -47,7 +47,7 @@ namespace DiscImageChef.DiscImages public class Gdi : ImagePlugin { 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; diff --git a/DiscImageChef.DiscImages/IMD.cs b/DiscImageChef.DiscImages/IMD.cs index 5ae719a4..9abfec00 100644 --- a/DiscImageChef.DiscImages/IMD.cs +++ b/DiscImageChef.DiscImages/IMD.cs @@ -47,7 +47,7 @@ namespace DiscImageChef.DiscImages const byte SECTOR_HEAD_MAP_MASK = 0x40; const byte COMMENT_END = 0x1A; 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; diff --git a/DiscImageChef.DiscImages/RayDIM.cs b/DiscImageChef.DiscImages/RayDIM.cs index f5965c0e..03cc52ce 100644 --- a/DiscImageChef.DiscImages/RayDIM.cs +++ b/DiscImageChef.DiscImages/RayDIM.cs @@ -45,7 +45,7 @@ namespace DiscImageChef.DiscImages public class RayDim : ImagePlugin { 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; diff --git a/DiscImageChef.DiscImages/VMware.cs b/DiscImageChef.DiscImages/VMware.cs index b3b9b707..72ffbe67 100644 --- a/DiscImageChef.DiscImages/VMware.cs +++ b/DiscImageChef.DiscImages/VMware.cs @@ -68,21 +68,21 @@ namespace DiscImageChef.DiscImages const string DDF_MAGIC = "# Disk DescriptorFile"; - 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_PARENT = "^\\s*parentCID\\s*=\\s*(?<cid>[0123456789abcdef]{8})$"; + 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_PARENT = @"^\s*parentCID\s*=\s*(?<cid>[0123456789abcdef]{8})$"; 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 = - "^\\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 = - "^\\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_HEADS = "^\\s*ddb\\.geometry\\.heads\\s*=\\s*\\\"(?<heads>\\d+)\\\"$"; - const string REGEX_DDB_CYLINDERS = "^\\s*ddb\\.geometry\\.cylinders\\s*=\\s*\\\"(?<cylinders>\\d+)\\\"$"; - const string PARENT_REGEX = "^\\s*parentFileNameHint\\s*=\\s*\\\"(?<filename>.+)\\\"$"; + @"^\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_HEADS = @"^\s*ddb\.geometry\.heads\s*=\s*\""(?<heads>\d+)\""$"; + const string REGEX_DDB_CYLINDERS = @"^\s*ddb\.geometry\.cylinders\s*=\s*\""(?<cylinders>\d+)\""$"; + const string PARENT_REGEX = @"^\s*parentFileNameHint\s*=\s*\""(?<filename>.+)\""$"; const uint FLAGS_VALID_NEW_LINE = 0x01; const uint FLAGS_USE_REDUNDANT_TABLE = 0x02;