Copy #簡易搜尋範例
import re
test = 'hello re!!!' #要被檢查的句子
pattern = re.compile(r'.{1}re.{1}') #搜尋條件:尋找re並包含前後一個任意字元
match = pattern.search(test)
if match: #找不到則為None
print(match.group()) #輸出結果: re!(包含前一個空格)
#簡易取代範例
pattern2 = re.compile(r're') #條件:找到re
print(pattern2.sub('RE',test)) #將字串中的re取代為RE,輸出結果:hello RE!!!
Copy import re
def remove_html_tags(data): #data為網頁原始碼
p = re.compile(r'<.*?>')
return p.sub('', data)
test = '<h1>123</h2>'
print(remove_html_tags(test)) #輸出結果:123
Copy import re
test='今天天氣很好,覺得肚子很餓,粗乃玩'
pattern=re.compile(r',.*肚子.*,') #包含肚子的一句話
result=pattern.search(test)
print(result.group()) #搜尋結果:,覺得肚子很餓,
Copy import re
test=u'abc找中文abc'
pattern=re.compile(u'[\u4e00-\u9fa5]+') #'+':一個或多個,找到一個或多個中文字
result=pattern.search(test)
print(result.group()) #搜尋結果:找中文
Copy #python3
import re
test='a3(neu) sss(Neu) ((PARENTHESISCATEGORY) )(PARENTHESISCATEGORY)' #假設斷詞結果
pattern=re.compile(r'\([a-z,A-Z,_,0-9]+\)') #加斜線就可連同括弧一起比對
match =pattern.findall(test)
match2=pattern.search(test)
print(match) #['(neu)', '(Neu)', '(PARENTHESISCATEGORY)', '(PARENTHESISCATEGORY)'] 如果找不到則回傳空陣列
print(match2.group())#(neu) 只會找第一個
Copy #python3
import re
raw='123\n456。789'
sentences=re.split('\n|。', raw)
print(sentences) #['123', '456', '789']
raw2='123\n456\n789' #只出現斷行符號
sentences2=re.split('\n|。', raw)
print(sentences2) #['123', '456', '789']
Copy # 找圖片
raw_content = "test content"
urls = re.findall('(?:http\:|https\:)?\/\/.*\.(?:png|jpg)', raw_content)
# 找url
all_url = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\), ]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', raw_article)
Copy import re
term_pat = re.compile(r'(<FRONT>)([.\n\w\W]*?)(<END>)')
get_term = term_pat.finditer(sttr_replace)
# 將計算結過存入字典
for idx, term in enumerate(get_term):
# print(term)
start = term.start()
end = term.end()
print(term, start, end)
# solution 2
iter = re.finditer(r"\bis\b", String)
indices = [m.start(0) for m in iter]