我不太瞭解正則表達式,我正在努力學習它們。我正在使用Python,並且需要使用re.compile
來創建一個匹配任何以變量字符串開頭的字符串的正則表達式。該字符串是變量url
。目前我有re.compile('%s*'%url)
,但它似乎不工作。我究竟做錯了什麼?Python的正則表達式去匹配以字符串開頭的任何字符串
回答
使用re.escape(url)
:
In [15]: import re
In [16]: url = 'http://stackoverflow.com'
In [17]: pat = re.compile(re.escape(url))
In [18]: pat.match('http://stackoverflow.com')
Out[18]: <_sre.SRE_Match object at 0x8fd4c28>
In [19]: pat.match('http://foo.com') is None
Out [19]: True
雖然正則表達式將針對這種情況工作,爲什麼不使用str.startswith()?使事情變得更簡單,並且已經使用python構建了這種情況。它也凝結的是必須與你的代碼,如編譯,匹配等所做的一切,所以,代替正則表達式的,這是你的代碼可以是什麼樣子:
url = "http://example.com/"
string = "http://example.com is a great site! Everyone check it out!"
if string.startswith(url):
print 'The string starts with url!'
else:
print "The string doesn't start with url. Very unfortunate."
這將是太棒了,但我實際上使用它來從數據庫中獲得匹配該正則表達式的字段 – chromedude
如果它是正則表達式或內置類型,它會產生什麼區別? – Hairr
我同意,如果你只是試圖匹配一個字符串的URL開始,正則表達式是矯枉過正。 – goji
- 1. Ruby正則表達式:匹配以字符串開頭還是換行符開頭的匹配字符串?
- 2. 正則表達式匹配以constatant開頭的字符串
- 3. 正則表達式匹配字符串不以我開頭
- 4. 正則表達式匹配字符串開頭的確切子字符串
- 5. 正則表達式,可選地匹配字符串的開頭
- 6. 正則表達式匹配高達「/」的任何字符串Javascript
- 7. 正則表達式以任何順序匹配字符串
- 8. 正則表達式匹配字符串
- 9. 正則表達式匹配字符串
- 10. 正則表達式匹配字符串
- 11. 正則表達式匹配字符串
- 12. 正則表達式匹配字符串
- 13. 正則表達式匹配字符串
- 14. 正則表達式匹配字符串
- 15. 正則表達式匹配字符串
- 16. 正則表達式字符串匹配?
- 17. 匹配匹配字符串的正則表達式的子串
- 18. 需要正則表達式來匹配以數字開頭的字符串
- 19. python 3正則表達式匹配字符串元字符
- 20. 重複字符匹配正則表達式匹配字符串
- 21. 正則表達式在字符串開頭的通配符
- 22. 正則表達式匹配字符串或字符串
- 23. 正則表達式匹配不以......開頭的字符串,並且不以
- 24. 空的正則表達式匹配任何字符串
- 25. 正則表達式匹配[和]之間的任何字符串
- 26. C#。最快的正則表達式匹配任何字符串
- 27. 正則表達式則表達式匹配的字符串
- 28. 正則表達式正則表達式匹配字符串
- 29. 正則表達式匹配的雙連字符的字符串
- 30. 正則表達式:一組匹配任何以特定字符開頭的字符串
能否請您發表您的當前代碼,看看是否可以找到這個錯誤? – Hairr