Захватывать произвольные группы предметов - PullRequest
0 голосов
/ 07 января 2019

У меня есть разделенные запятыми ключи + значения вроде этого:

Field1=33,Field2=44

Поля могут быть в произвольном порядке, так что это может быть что-то вроде этого:

Field2=44,Field1=33

Я хочу получить словарь значений ключей, используя только одно регулярное выражение, которое игнорирует порядок полей.

Самое простое решение ниже:

Field1=(?<Field1>\d*),Field2=(?<Field2>\d*)

Но это не работает для второго случая, когда Field2 предшествует Field1.

Есть ли способ достичь этого без использования дополнительной работы в коде?

Я не думаю, что регулярные выражения поддерживают это, но я довольно простой пользователь регулярных выражений. Я использую .net регулярное выражение.

1 Ответ

0 голосов
/ 07 января 2019

Если вы понимаете язык / инструмент, вы можете использовать:

(?=.*(Field1=(?<field1>\d+)))(?=.*(Field2=(?<field2>\d+)))

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...