2010-02-26 2 views

ответ

0

Насколько мне известно. Обычно поэтому функции поиска и замены регулярных выражений позволяют вам в первую очередь ссылаться на несколько групп захвата.

0

К сожалению, нет, это невозможно. Решение состоит в том, чтобы захватить два отдельных захвата, а затем связаться после факта.

Согласно этой старой теме на этом сайте:

Regular expression to skip character in capture group

1

Вы также могли бы рассмотреть возможность зачистки ненужных данных, а затем захватить.

data = "some text to capture. <tag>junk</tag> other stuff to capture". 
data = re.replace('<tag>[^<]*</tag>', data, "") 
data_match = re.match('[\w\. ]+', data) 
0

Групповой сбор подряд, поэтому вы не можете. Вы можете сделать это в одном разборе с регулярным выражением, как показано ниже, и присоединиться к линии в коде

^(?<line1>.*?)(?:\<\w*\>.*?\</\w*\>)(?<line3>.*?)$ 
0

вот не способ регулярного выражения, разделить на </tag>, пройти через элементы массива, найти <tag>, затем разделить на <tag> и получить первый элемент. например

>>> s="some text I want to capture. <tag> junk I don't care about</tag> more stuff I want. <tag> don't care </tag> i care" 
>>> for item in s.split("</tag>"): 
...  if "<tag>" in item: 
...  print item.split("<tag>")[0] 
...  else: 
...  print item 
... 
some text I want to capture. 
more stuff I want. 
i care 

Используйте split() функцию asp.net, чтобы сделать то же самое.

Смежные вопросы