Регулярное выражение для определенного символа в непарном тегеPython

Программы на Python
Ответить
Anonymous
 Регулярное выражение для определенного символа в непарном теге

Сообщение Anonymous »

Я пытаюсь найти символ в несбалансированной паре тегов. Я могу идентифицировать его в совпадающем наборе, а также когда совпадающие пары состоят из одного символа каждая, но я не могу понять синтаксис, чтобы найти его в несовпадающем наборе, когда каждая пара состоит из нескольких символов. Я безуспешно пробовал несколько комбинаций опережающего просмотра.
Это теги и ; один из каждого является совпадающей парой. В строке не может быть ни одной, ни одной или нескольких пар и/или одной или нескольких несовпадающих пар, т. е. без соответствующего . (Хотя теоретически возможно иметь без , я не сталкивался ни с одним и меня это не беспокоит.)
Я пытаюсь найти экземпляры ' (правая одинарная кавычка) в несовпадающей паре, т. е. после , у которого нет соответствующего . Это может быть связано с тем, что EOL достигается до или потому, что другой появляется первым.
Пример данных:

Код: Выделить всё

Line one, matched one,
Line two, unmatched’ one. Line two, matched’ pair one.
Line three, ’fore no tag.
Line four, ’fore first tag. Line four, unmatched one’.
Line five free text before. Line five, matched one, line five, ’matched two. Line five’ free text after.
Line six matched one, line six free text! Line six matched two hittin’ and sittin’ and goin’ on forever.
Line seven unmatched’ one.
Line eight free text. Line eight’ unmatched one, unmatched’ two.
Регулярное выражение должно соответствовать только ' во второй строке (только «несоответствующая»), четвертой строке (только «несоответствующая»), седьмой строке («несоответствующая») и первой (восемь ') в восьмой строке (я могу запустить ее несколько раз, чтобы найти следующую(ие)). (Я включил сюда слова, чтобы было понятно, где находится совпадение; но я ищу только сам '.)
Это на Python, с регулярным выражением, которое должно быть частью поиск и замена, например

Код: Выделить всё

regex.sub(r"regex", r"", text_being_processed)
Предполагается, что сопоставляется только ’; если с группами захвата проще, я могу при необходимости настроить замену.
Не обращая на мгновение внимания на EOL, я попытался найти текст между двумя без вмешиваюсь , но я явно неправильно обрабатываю отрицательный просмотр:

Код: Выделить всё

(?

Подробнее здесь: [url]https://stackoverflow.com/questions/79340748/regex-for-a-particular-character-in-an-unpaired-tag[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»