|
|
|
|
|
by falsedan
3374 days ago
|
|
Don't all the languages which support complex regex also support composing regexes from objects/strings? e.g. /\A\s*\d{3,5}\.\d{2}\t\(?:(['"])(?:[\s\w]|\\\1)+\1|[^'"]+)\t[A-Z0-9]+\s*\Z/
would be written as $ws = /\s*/;
$sep = /\t/;
$cost = /\d{3,5} [.] \d\d/x;
$quoted_description = /
(['"]) # opening quote; remember this for later
(?: # (capture groups, don't read this)
[\w\s] # a chars or space
| # OR
[\\] \1 # backslash-escaped quote, same as opening
)+ # (description can't be empty)
\1 # closing quote, matching opening
/x;
$unquoted_description = /[^'"]+/;
$description = /(?: $quoted_description | $unquoted_description )/x;
$SKU = / [[:upper:][:digit:]]+ /x;
/\A $ws $cost $sep $description $sep $SKU $ws \Z/x
|
|