# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(?!(?!.*?<a)[^<]*<\/a>)(?<!\")(?:(?:https?|ftp|file):\/\/|www\.|ftp\.|youtube\.|youtu\.be)[\-A-Z0-9\+\&\#\/%=~_|$?!:;,\.]*[A-Z0-9+&#\/%=~_|$]"
test_str = ("youtu.be/iwGFalTRHDA\n"
"youtube.com/watch?v=iwGFalTRHDA\n"
"www.youtube.com/watch?v=iwGFalTRHDA\n"
"http://www.youtube.com/watch?v=iwGFalTRHDA\n"
"https://www.youtube.com/watch?v=iwGFalTRHDA\n"
"https://www.youtube.com/watch?v=MoBL33GT9S8&feature=share\n"
"https://www.youtube.com/embed/watch?feature=player_embedded&v=iwGFalTRHDA\n"
"https://www.youtube.com/embed/watch?v=iwGFalTRHDA\n"
"https://www.youtube.com/embed/v=iwGFalTRHDA\n"
"https://www.youtube.com/watch/iwGFalTRHDA\n"
"http://www.youtube.com/attribution_link?u=/watch?v=aGmiw_rrNxk&feature=share\n"
"https://m.youtube.com/watch?v=iwGFalTRHDA\n\n\n"
"https://www.youtube.com/watch?v=DFYRQ_zQ-gk&feature=featured\n"
"https://www.youtube.com/watch?v=DFYRQ_zQ-gk\n"
"http://www.youtube.com/watch?v=DFYRQ_zQ-gk\n"
"//www.youtube.com/watch?v=DFYRQ_zQ-gk\n"
"www.youtube.com/watch?v=DFYRQ_zQ-gk\n"
"https://youtube.com/watch?v=DFYRQ_zQ-gk\n"
"http://youtube.com/watch?v=DFYRQ_zQ-gk\n"
"//youtube.com/watch?v=DFYRQ_zQ-gk\n"
"youtube.com/watch?v=DFYRQ_zQ-gk\n\n"
"https://m.youtube.com/watch?v=DFYRQ_zQ-gk\n"
"http://m.youtube.com/watch?v=DFYRQ_zQ-gk\n"
"//m.youtube.com/watch?v=DFYRQ_zQ-gk\n"
"m.youtube.com/watch?v=DFYRQ_zQ-gk\n\n"
"https://www.youtube.com/v/DFYRQ_zQ-gk?fs=1&hl=en_US\n"
"http://www.youtube.com/v/DFYRQ_zQ-gk?fs=1&hl=en_US\n"
"//www.youtube.com/v/DFYRQ_zQ-gk?fs=1&hl=en_US\n"
"www.youtube.com/v/DFYRQ_zQ-gk?fs=1&hl=en_US\n"
"youtube.com/v/DFYRQ_zQ-gk?fs=1&hl=en_US\n\n"
"https://www.youtube.com/embed/DFYRQ_zQ-gk?autoplay=1\n"
"https://www.youtube.com/embed/DFYRQ_zQ-gk\n"
"http://www.youtube.com/embed/DFYRQ_zQ-gk\n"
"//www.youtube.com/embed/DFYRQ_zQ-gk\n"
"www.youtube.com/embed/DFYRQ_zQ-gk\n"
"https://youtube.com/embed/DFYRQ_zQ-gk\n"
"http://youtube.com/embed/DFYRQ_zQ-gk\n"
"//youtube.com/embed/DFYRQ_zQ-gk\n"
"youtube.com/embed/DFYRQ_zQ-gk\n\n"
"https://youtu.be/DFYRQ_zQ-gk?t=120\n"
"https://youtu.be/DFYRQ_zQ-gk\n"
"http://youtu.be/DFYRQ_zQ-gk\n"
"//youtu.be/DFYRQ_zQ-gk\n"
"youtu.be/DFYRQ_zQ-gk\n\n"
"https://www.youtube.com/HamdiKickProduction?v=DFYRQ_zQ-gk\n\n\n\n"
"\"https://youtu.be/yVpbFMhOAwE\",\n"
"\"https://www.youtube.com/embed/yVpbFMhOAwE\",\n"
"\"youtu.be/yVpbFMhOAwE\",\n"
"\"youtube.com/watch?v=yVpbFMhOAwE\",\n"
"\"http://youtu.be/yVpbFMhOAwE&t=2m\",\n"
"\"http://www.youtube.com/embed/yVpbFMhOAwE&t=2m5s\",\n"
"\"http://www.youtube.com/watch?v=yVpbFMhOAwE\",\n"
"\"http://www.youtube.com/watch?v=yVpbFMhOAwE&feature=g-vrec&t=30s\",\n"
"\"http://www.youtube.com/watch?v=yVpbFMhOAwE&feature=player_embedded\",\n"
"\"http://www.youtube.com/v/yVpbFMhOAwE?fs=1&hl=en_US\",\n"
"\"http://www.youtube.com/ytscreeningroom?v=yVpbFMhOAwE\",\n"
"\"http://www.youtube.com/watch?NR=1&feature=endscreen&v=yVpbFMhOAwE\",\n"
"\"http://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo\",\n"
"\"http://www.youtube.com/watch?v=6zUVS4kJtrA&feature=c4-overview-vl&list=PLbzoR-pLrL6qucl8-lOnzvhFc2UM1tcZA\",\n"
"\"https://www.youtube.com/watch?v=FZu097wb8wU&list=RDFZu097wb8wU\"\n\n\n"
"youtu.be/iwGFalTRHDA\n"
"youtube.com/watch?v=iwGFalTRHDA\n"
"www.youtube.com/watch?v=iwGFalTRHDA\n"
"http://www.youtube.com/watch?v=iwGFalTRHDA\n"
"https://www.youtube.com/watch?v=iwGFalTRHDA\n"
"https://www.youtube.com/watch?v=MoBL33GT9S8&feature=share\n"
"https://www.youtube.com/embed/watch?feature=player_embedded&v=iwGFalTRHDA\n"
"https://www.youtube.com/embed/watch?v=iwGFalTRHDA\n"
"https://www.youtube.com/embed/v=iwGFalTRHDA\n"
"https://www.youtube.com/watch/iwGFalTRHDA\n"
"http://www.youtube.com/attribution_link?u=/watch?v=aGmiw_rrNxk&feature=share\n"
"https://m.youtube.com/watch?v=iwGFalTRHDA\n\n\n\n"
"https://www.youtube.com/watch?v=DFYRQ_zQ-gk&feature=featured\n"
"https://www.youtube.com/watch?v=DFYRQ_zQ-gk\n"
"http://www.youtube.com/watch?v=DFYRQ_zQ-gk\n"
"//www.youtube.com/watch?v=DFYRQ_zQ-gk\n"
"www.youtube.com/watch?v=DFYRQ_zQ-gk\n"
"https://youtube.com/watch?v=DFYRQ_zQ-gk\n"
"http://youtube.com/watch?v=DFYRQ_zQ-gk\n"
"//youtube.com/watch?v=DFYRQ_zQ-gk\n"
"youtube.com/watch?v=DFYRQ_zQ-gk\n\n"
"https://m.youtube.com/watch?v=DFYRQ_zQ-gk\n"
"http://m.youtube.com/watch?v=DFYRQ_zQ-gk\n"
"//m.youtube.com/watch?v=DFYRQ_zQ-gk\n"
"m.youtube.com/watch?v=DFYRQ_zQ-gk\n\n"
"https://www.youtube.com/v/DFYRQ_zQ-gk?fs=1&hl=en_US\n"
"http://www.youtube.com/v/DFYRQ_zQ-gk?fs=1&hl=en_US\n"
"//www.youtube.com/v/DFYRQ_zQ-gk?fs=1&hl=en_US\n"
"www.youtube.com/v/DFYRQ_zQ-gk?fs=1&hl=en_US\n"
"youtube.com/v/DFYRQ_zQ-gk?fs=1&hl=en_US\n\n"
"https://www.youtube.com/embed/DFYRQ_zQ-gk?autoplay=1\n"
"https://www.youtube.com/embed/DFYRQ_zQ-gk\n"
"http://www.youtube.com/embed/DFYRQ_zQ-gk\n"
"//www.youtube.com/embed/DFYRQ_zQ-gk\n"
"www.youtube.com/embed/DFYRQ_zQ-gk\n"
"https://youtube.com/embed/DFYRQ_zQ-gk\n"
"http://youtube.com/embed/DFYRQ_zQ-gk\n"
"//youtube.com/embed/DFYRQ_zQ-gk\n"
"youtube.com/embed/DFYRQ_zQ-gk\n\n"
"https://www.youtube-nocookie.com/embed/DFYRQ_zQ-gk?autoplay=1\n\n\n"
"https://youtu.be/DFYRQ_zQ-gk?t=120\n"
"https://youtu.be/DFYRQ_zQ-gk\n"
"http://youtu.be/DFYRQ_zQ-gk\n"
"//youtu.be/DFYRQ_zQ-gk\n"
"youtu.be/DFYRQ_zQ-gk\n\n"
"https://www.youtube.com/HamdiKickProduction?v=DFYRQ_zQ-gk\n\n\n\n"
"https://www.youtube.com/feed/subscriptions\n"
"https://www.youtube.com/channel/UCgc00bfF_PvO_2AvqJZHXFg\n"
"https://www.youtube.com/c/NatGeoEdOrg/videos\n\n"
" youtu.be/iwGFalTRHDA\n"
"youtube.com/watch?v=iwGFalTRHDA\n"
"www.youtube.com/watch?v=iwGFalTRHDA\n"
"http://www.youtube.com/watch?v=iwGFalTRHDA\n"
"https://www.youtube.com/watch?v=iwGFalTRHDA\n"
"https://www.youtube.com/watch?v=MoBL33GT9S8&feature=share\n"
"https://www.youtube.com/embed/watch?feature=player_embedded&v=iwGFalTRHDA\n"
"https://www.youtube.com/embed/watch?v=iwGFalTRHDA\n"
"https://www.youtube.com/embed/v=iwGFalTRHDA\n"
"https://www.youtube.com/watch/iwGFalTRHDA\n"
"http://www.youtube.com/attribution_link?u=/watch?v=aGmiw_rrNxk&feature=share\n"
"https://m.youtube.com/watch?v=iwGFalTRHDA")
subst = "<a href=\"$0\">$0</a>"
# You can manually specify the number of replacements by changing the 4th argument
result = re.sub(regex, subst, test_str, 0, re.MULTILINE | re.IGNORECASE)
if result:
print (result)
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html