2017-08-29 70 views
-2

我想檢索段落包含單詞從一個網站。問題我不知道有多少單詞後,所以我需要迭代它。遍歷單詞儘可能多re.search python

import urllib.request 
import re 
url = "http://www.cnn.com" 
request = urllib.request.Request(url) 
html_content = urllib.request.urlopen(request) 
mystring=html_content.read().decode('utf-8') 
m = re.search('CNN\s\w+\s\w+\s\w+\s\w+\s\w+\s\w+\s\w+\s(\w+)',mystring) 
print (m.group(0)) 
在這個例子中

我從韓國CNN的任意不等階關鍵字的新聞,例如我想獲得的所有段落,直到第一個句號(。),或者可以說punctutaion標誌。

+0

不知道你在問什麼.. –

+2

添加更多描述到你的問題。 –

+2

用示例嘗試... –

回答

1

我不知道這是否真的解決了您的問題。如果你希望你的文字被分成句子使用:

re.split(r'[\.\!]', text)

如果你只想文本的第一句使用:

re.match(r'.*[\.\!]', text

的點意味着每一個字符會一場比賽。星號是零或多個出現的量詞。括號中包含最後一個字符的集合,它是一個點或一個感嘆號。

,如果你想找到包含特定關鍵字的使用這種每一句:

re.findall(r'[^\.\!]*KEYWORD[^\.\!]*[\.\!]', text)

在匹配的字符集開頭的抑揚意味着每一個字符除了給定的。

+0

@sevn我剛剛編輯過這樣的句子,但仍然在句子結尾處變得荒謬。'pattern = r'(Trump [^ \。] * \, 。)'m = re.findall(pattern,mystring)' – melic

+0

你的回答之後,我增強了一些代碼,併爲結果中的每個字符添加替換函數來清理不必要的字符。我希望我可以將代碼粘貼到此處,但它不會幫助我把終結線放在代碼中,所以代碼變得沒用:D – melic