here pattern. doesn't seems working. looking colorcode 2 3 alphanumeric. doesn't seems working.
^(?<productno>\d{6})\s(?<mattype>\w+).*?(\s)?((?<colorcode>[a-z0-9]{3})|(?<viewcode>\(view\d+\))*)(?:_[a-z])?$
with result:
123456 stli ocean ehc_q colorcode: ehc valid 123456 stli ocean ehcd_q colorcode: hcd invalid
can me how make work colorcode should 2 3 alphanumeric?
valid test datas:
123456 stli_q 123456 stli ocean ehc_q 123456 stli white we_q 123456 fmv spin fuchsia 2yp 123456 stli (view002)_q 123456 stl aqua wbp
thanks
i think can use
^(?<productno>\d{6})\s(?<mattype>\w+).*?\s*(?:(?<viewcode>\(view\d+\))|(?<colorcode>\b[a-z0-9]{2,3}))?(?:_[a-z])?$
see regex demo
the main change added word boundary \b
@ start of colorcode
pattern, , changed limiting quantifier {2,3}
match 2 or 3 uppercase ascii letters or digits.
i removed capturing groups ((\s)?
> \s*
, may use \s?
if there can 1 or 0 whitespaces) , turned "container" group viewcode
, colorcode
groups non-capturing one.
to match entries no colorcode , viewcode, made whole "container" non-capturing group optional adding ?
quantifier.
Comments
Post a Comment