Скажем, что у меня есть регулярное выражение, соответствующее шестнадцатеричному 32-битовому номеру:
([0-9a-fA-F]{1,8})
Когда я создаю регулярное выражение, где мне нужно совместить это несколько раз, например
(?<from>[0-9a-fA-F]{1,8})\s*:\s*(?<to>[0-9a-fA-F]{1,8})
Должен ли я каждый раз повторять определение подвыражения, или есть способ "назвать и повторно использовать" его?
Я бы предположил что-то вроде (предупреждение, изобретенный синтаксис!)
(?<from>{hexnum=[0-9a-fA-F]{1,8}})\s*:\s*(?<to>{=hexnum})
где hexnum=
будет определять подвыражение "hexnum", а {= hexnum} будет повторно использовать его.
Поскольку я уже понял, это важно: я использую .NET System.Text.RegularExpressions.Regex
, но общий ответ тоже был бы интересным.