Я пытаюсь написать соответствие шаблонов, чтобы соответствовать только тогда, когда строка не сопровождается обоими следующими шаблонами. Прямо сейчас у меня есть шаблон, который я пытался манипулировать, но я не могу заставить его правильно соответствовать.Perl regex для соответствия только если не следовать обоими шаблонами
Текущая картина:
/(address|alias|parents|members|notes|host|name)(?!(\t{5}|\S+))/
Я пытаюсь соответствовать, когда строка не разнесены правильно, но не тогда, когда она является частью большего слова.
Например, я хочу это, чтобы соответствовать,
host \t{4} something
но,
hostgroup \t{5} something
В приведенном выше примере это будет соответствовать hostgroup и в конечном итоге, разделив его на 2 отдельные слова «хозяин» и "группа"
Match:
notes \t{4} something
но,
notes_url \t{5} something
Используя мой рисунок он заканчивает поворот в:
notes \t{5} _url
Хотелось бы надеяться, что делает немного больше смысла.
Когда вы говорите *, «за которым не следуют оба следующих шаблона» *, вы имеете в виду «не сопровождаемый * ни одним из двух шаблонов»? Требуется ли, чтобы за словом следовало меньше пяти вкладок? – Borodin
Ваша цель не совсем понятна. Если вы не можете четко сформулировать то, что хотите, в словах, по крайней мере, вы можете отредактировать вопрос, чтобы предоставить множество примеров того, что вы хотите сопоставить, и строк, которые у вас нет, и почему. Часто этот шаг будет иметь дополнительное преимущество, помогая вам реализовать решение самостоятельно, но, как минимум, это поможет нам советовать вам намного лучше. – Miller
Чтобы ответить на первый вопрос, я хочу, чтобы он соответствовал, когда первая группа не подчиняется ни второй группе. Я пытаюсь выровнять его со стандартом из 5 вкладок в любой из строк в первой группе, поэтому я хочу, чтобы он соответствовал и исправлял его, например, есть только 4 вкладки, следующие или более 5, однако я также не хочу чтобы попытаться сделать это, если первое совпадение является частью большего слова. Означает ли это немного больше смысла? Прошу прощения, если оригинальное объяснение было немного более неясным, чем то, что я намеревался. – user3486833