У меня есть регулярное выражение, которое выглядит так:
(?<Number>\d{3})-?(?<Hand>R?L?)[-\s]?(?<Description>.*?)?(?<ShnOpp>SHN|OPP)?$
С некоторыми примерами данных:
104-RL-BLAH BLA SHN
104-RL FOO OPP
102-RL-BAR WL74
102-BAR WL74
102-R-BAR WL74 SHN
102-R-BAR WL74 OPP
Итак, именованная группа Hand
может содержать RL|R|L|{Blank}
.
Но, если и только если, Hand="RL"
я хочу сопоставить ShnOpp
с SHN|OPP
, в противном случае просто оставьте это как часть описания.Итак, могу ли я выполнить буквальное условие IF
в своем регулярном выражении?
Либо мои навыки поиска в Google подвели меня, либо, может быть, вы просто не можете этого сделать, но я бы хотел оказаться ошибочным.
Вот ссылка на рабочий образец: https://regex101.com/r/wGghbV/2