Понадобилось недавно написать regex-выражение для распарсивания строк вида {name: formatMask, formatLength}, при этом форматирующая маска или длина могут присутствовать или отсутствовать.
Привожу код такого regex:
В группах имеем возможность получить сам fieldName, его маску fieldMask и длину length. Еще хочу отметить, что при работе с regex очень помогает такой инструмент как Rad Software Regular Expressions Designer -http://www.radsoftware.com.au/?from=RegexDesigner.

Привожу код такого regex:
\{\s*(?<FieldExpression>\s*(?<FieldName>\w{1,}){1}\s*(?<FormatExpression>(\s*(?<ColonSeparator>[:])|(?<CommaSeparator>[,]))\s*(?(ColonSeparator)(?<FormatMask>\w*)|)[,]*\s?(?<Length>\d+)*)*)\s?\}
В группах имеем возможность получить сам fieldName, его маску fieldMask и длину length. Еще хочу отметить, что при работе с regex очень помогает такой инструмент как Rad Software Regular Expressions Designer -http://www.radsoftware.com.au/?from=RegexDesigner.

Комментариев нет:
Отправить комментарий