我有一個文本,其中只有<b>
和</b>
已被使用,例如<b>abcd efg-123</b>
。我可以提取這些標籤之間的字符串嗎?我還需要在此字符串的前後塊之前和之後提取3個單詞。 我該怎麼做?這將是什麼適合的正則表達式?使用Python正則表達式在文本中查找字符串
0
A
回答
1
處理<b>
內部的標籤,除非它們是<b>
ofcouse。
import re
sometext = 'blah blah 1 2 3<b>abcd efg-123</b>word word2 word3 blah blah'
result = re.findall(
r'(((?:(?:^|\s)+\w+){3}\s*)' # Match 3 words before
r'<b>([^<]*|<[^/]|</[^b]|</b[^>])</b>' # Match <b>...</b>
r'(\s*(?:\w+(?:\s+|$)){3}))', sometext) # Match 3 words after
result == [(' 1 2 3<b>abcd efg-123</b>word word2 word3 ',
' 1 2 3',
'abcd efg-123',
'word word2 word3 ')]
這應該工作,並表現良好,但如果它得到更先進的話,那麼你應該考慮使用一個html解析器。
0
你不應該使用正則表達式來進行HTML解析。 That way madness lies.
上面鏈接的文章實際上爲您的問題提供了一個正則表達式 - 但是並不是使用它。
3
這將讓標籤之間有什麼在,
>>> s="1 2 3<b>abcd efg-123</b>one two three"
>>> for i in s.split("</b>"):
... if "<b>" in i:
... print i.split("<b>")[-1]
...
abcd efg-123
1
這實際上是一個非常愚蠢的版本,並且不允許嵌套的標籤。
re.search(r"(\w+)\s+(\w+)\s+(\w+)\s+<b>([^<]+)</b>\s+(\w+)\s+(\w+)\s+(\w+)", text)
相關問題
- 1. 在python中使用正則表達式來查找字符串
- 2. 正則表達式查找字符串
- 3. 正則表達式在字符串中查找字符串
- 4. 在python中查找帶正則表達式的字符串
- 5. Java使用正則表達式在字符串中查找值
- 6. 對正則表達式的Python 2.7導致在字符串中查找文本
- 7. 使用正則表達式在vb.net中查找字符串中的字符串
- 8. 如何使用正則表達式在字符串中查找字符串?
- 9. 如何使用正則表達式在字符串中查找字符串?
- 10. 用於在字符串中查找mp4的正則表達式
- 11. 正則表達式python - 查找子串
- 12. 正則表達式 - 在字符串中查找大寫字
- 13. 查找使用Python正則表達式
- 14. 正則表達式查找字符串中的字符串中的字符串
- 15. 正則表達式/ Python的查找和字符串
- 16. Python正則表達式從字符串查找變量值
- 17. 用正則表達式查找文本
- 18. 查找子字符串和使用正則表達式,蟒蛇
- 19. 正則表達式使用正則表達式來找到子字符串
- 20. 查找字符串模式使用正則表達式與Python 3
- 21. 正則表達式在字符串上查找字母數字
- 22. 正則表達式在Python中查找列表中的字符串3
- 23. 正則表達式查找字符串之間的文本,而不在中間
- 24. 在python中使用正則表達式分割字符串
- 25. 在字符串中查找通配符子字符串的正則表達式
- 26. 使用正則表達式查找正則表達式字符類
- 27. 在一個字符串中查找多個正則表達式
- 28. Java正則表達式在字符串中查找「[」的實例
- 29. 在Java正則表達式中查找括號字符串
- 30. 正則表達式在方括號中查找字符串[]
強制性:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – 2010-10-20 13:46:06