python: adierazpen erregularrakaz (regex) link-ek html-ra bihurtu

baguez kallue hartzien python-eri, oingutan texto batetik link-ek html-ra pasa’kuz

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re

text = "http://aaaaa       https://bbbbb ftp://ccccc\n http://dddddddd"

m = re.sub(r'(?i)(^|\s+|\A)(http|https|ftp)(\://\S+)(\s+|\Z|$)', '\\1<a href=\"\\1\\2\" onclick=\"window.open(this.href); return false;\">\\2\\3</a>\\4', text)

print m

Erantzune:

 

<a href="http://aaaaa" onclick="window.open(this.href); return false;">       <a href="https://bbbbb" onclick="window.open(this.href); return false;"> <a href="ftp://ccccc" onclick="window.open(this.href); return false;">
 <a href="http://dddddddd" onclick="window.open(this.href); return false;">

Badakitz eztala expresiño erregular zehatza, karaktere danak ez dizelako sartzien hor adierazpenan, baie bueno danok dakigu hutsune bat daueniko amaitzuten dala linke edota esaldidxe amaitzuten daniko.

Adierazpenan azalpena:

  • r'(?i) -> maiskule eta minuskulen artien EZ bereiztuteko
  • (^|\s+|\A) -> textu hasikerie edo hutsune bat edo 1go hizkidxe bada
  • (http|https|ftp) -> http EDO https EDO ftp-gaz hasten dizelako linkek
  • (\://\S+) -> : \-gaz eskapa bide gero // eta \S+ edozein karaktere EZ dana hutsunie
  • (\s+|\Z|$) -> hutsinie edo azkaningoko berbie edo esaldi akabukerie bada

Ordezkapenan azalpena:

  • \\1 -ek adierazpenako lehenengo () adierazten dau, hau da: (^|\s+|\A)
  • \\2 -ek adierazpenako bigarren () adierazten dau, hau da: (http|https|ftp)
  • \\3 -ek adierazpenako hirugarren () adierazten dau, hau da: (\://\S+)(\s+|\Z)
  • \\4 -ek adierazpenako laugarren () adierazten dau, hau da: (\s+|\Z)

One thought on “python: adierazpen erregularrakaz (regex) link-ek html-ra bihurtu

  1. (^|\s+|\A) sartun’tzat, akabukerakulez bardin hasikeran ein biher dalako :P

Utzi erantzuna

Zure e-posta helbidea ez da argitaratuko. Beharrezko eremuak * markatuta daude