У меня есть файл полей данных, который может содержать комментарии, как показано ниже:
id, data, data, data
101 a, b, c
102 d, e, f
103 g, h, i // has to do with 101 a, b, c
104 j, k, l
//105 m, n, o
// 106 p, q, r
Как вы можете видеть в первом комментарии выше, есть прямые ссылки на соответствующий шаблон.Теперь я хочу захватить 103, и это три поля данных, но я не хочу фиксировать то, что в комментариях.
Я пробовал смотреть негативно, чтобы исключить 105 и 106, но я не могу прийтис регулярным выражением для захвата обоих.
(?<!//)(\b\d+\b),\s(data),\s(data),\s(data)
Это будет захватывать все, кроме исключения 105, но указать
(?<!//\s*) or (?<!//.*)
как мою попытку исключить комментарий с любым пробелом илилюбые символы делают недействительным все мое регулярное выражение.
У меня такое чувство, что мне нужно хитрое использование якоря, или мне нужно обернуть то, что я хочу, в группу захвата и сделать ссылку на него (как в $1
) в моем взгляде.
Если это еще один случай "регулярные выражения не поддерживают рекурсию", потому что это обычный язык (теория автоматов), укажите это.
Можно ли исключить комментарии в 103, а также строки 105 и 106, используя регулярное выражение?Если да, то как?