Регулярное выражение для значения ключа со значением, не начинающимся с символа - PullRequest
0 голосов
/ 29 июня 2018

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

Мое регулярное выражение:

^\s*(?<nodename>\w+)\s*(?<nodevalue>.*)$

Пример:

callingLineId {

    pid xxx,

    msisdn "xxx"

},

callingLineIdGSM 'xxxx'H,

portNumber xxxx,

mser {xxx},

xser {},

ppPser {xxx-pp},

cmReferenceNr xxx,

Он не может совпадать со строками вроде:

callingLineId { mser {xxx},

Он должен соответствовать только таким строкам, как:

portNumber xxxx, msisdn "xxx"

Мой проект на regex101: https://regex101.com/r/lvzyUj/1]

1 Ответ

0 голосов
/ 10 июля 2018

Это должно сработать

^\s*(?<nodename>\w+)\s*(?<nodevalue>[^{}\s,]*),?\s*$

Если «значения» могут содержать пробелы, вы можете использовать это вместо:

^\s*(?<nodename>\w+)\s*(?<nodevalue>[^{}\r\n,]*),?\s*$
...