2016-02-11 5 views
0

У меня есть следующие подстроки в строке Str (DList):Работа с « п т т» с регулярным выражением

"addressRegion">\n\t\t\t\t\t\t\t\t\tMA\n\t\t\t\t\t\t\t\t</span> 

Я пытаюсь использовать re.search вытащить «МА» с помощью это:

state = re.search(r'"addressRegion">\n\t\t\t\t\t\t\t\t\t(.+?)\n\t',str(dList)) 

Однако, это не работает. Я понимаю, что это возможно из-за способа обработки «/». Я не могу понять, как с этим бороться.

+2

Вы используете регулярное выражение для разбора HTML? [Пожалуйста, не надо] (http://stackoverflow.com/a/1732454/2308683) –

+0

Я использую BeautifulSoup, я использую регулярное выражение для более тонких деталей. (подстроки). – krthkskmr

+1

Можете ли вы получить текст внутри этого тега span? Затем разделите пробелы '\ t' и' \ n'? –

ответ

1

обновление Это, как вы могли бы сделать это, если вы действительно хотите использовать регулярное выражение, но я думаю, что @ решение cricket_007 является лучшим подходом.

Все, что вам нужно сделать, это избежать обратной косой черты с помощью обратной косой черты. Вы также можете избавиться от повторений «\ т»:

>>> s = '"addressRegion">\n\t\t\t\t\t\t\t\t\tMA\n\t\t\t\t\t\t\t\t</span>' 
>>> re.search('.*\\n(\\t)+(.*?)\\n(\\t)+.*',s).group(2) 
'MA' 
+0

Я отменил бы мой downvote, по крайней мере, для принятия регулярного выражения, это не рекомендуемый подход. :) –

2

Regex является действительно не нужно

In [22]: str = '<span class="addressRegion">\n\t\t\t\t\t\t\t\t\tMA\n\t\t\t\t\t\t\t\t</span>' 

In [23]: from bs4 import BeautifulSoup 

In [24]: soup = BeautifulSoup(str, 'html.parser') 

In [25]: soup.text 
Out[25]: u'\n\t\t\t\t\t\t\t\t\tMA\n\t\t\t\t\t\t\t\t' 

In [26]: soup.text.strip() 
Out[26]: u'MA' 
+1

Я согласен, решение no regex, вероятно, лучший подход. – yurib

+0

Вывод at soup.text равен u '\\ n \\ t \\ t \\ t вместо u' \ n \ t \ t \ t, и поэтому soup.text.strip() ничего не делает. Но да, я вижу, как это гораздо лучший подход. – krthkskmr

+0

@krthkskmr - Независимо от того, что вы просматриваете, это происходит от обратных косых черт –

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