SORU
14 NİSAN 2011, PERŞEMBE


Nasıl dize bir normal ifade giriş için.python ile değiştirin?

Bir düzenli ifade ilan ilgili yardıma ihtiyacım var. Benim girişler aşağıdaki gibidir:

this is a paragraph with<[1> in between</[1> and then there are cases ... where the<[99> number ranges from 1-100</[99>. 
and there are many other lines in the txt files
with<[3> such tags </[3>

Gerekli çıktı

this is a paragraph with in between and then there are cases ... where the number ranges from 1-100. 
and there are many other lines in the txt files
with such tags

Bu denedim:

#!/usr/bin/python
import os, sys, re, glob
for infile in glob.glob(os.path.join(os.getcwd(), '*.txt')):
    for line in reader: 
        line2 = line.replace('<[1> ', '')
        line = line2.replace('</[1> ', '')
        line2 = line.replace('<[1>', '')
        line = line2.replace('</[1>', '')

        print line

Ayrıca, bu (ama yanlış düzenli ifade sözdizimi kullanıyorum gibi) denedim:

    line2 = line.replace('<[*> ', '')
    line = line2.replace('</[*> ', '')
    line2 = line.replace('<[*>', '')
    line = line2.replace('</[*>', '')

Ben 99 sabit-kod 1: replace istiyorum. . .

CEVAP
14 NİSAN 2011, PERŞEMBE


Bu kod işe yaramalı test:

import re
line = re.sub(r"</?\[\d >", "", line)

Düzenleme:İşte bir sürüm yorumladı nasıl çalıştığını anlatan:

line = re.sub(r"""
  (?x) # Use free-spacing mode.
  <    # Match a literal '<'
  /?   # Optionally match a '/'
  \[   # Match a literal '['
  \d   # Match one or more digits
  >    # Match a literal '>'
  """, "", line)

Yukarıdaki diyagram vardıreğlenceli!Ancak güçlü bir veya iki saat temel eğitim harcamalarını tavsiye ederim. Yeni başlayanlar için, özel öğrenmelisin:< . em^"" . meta kaçmış olması gerekir (ters eğik çizgi ön yerleştirilmiş, yani kurallar ve karakter sınıfları içinde ve dışında farklı olan.) Mükemmel bir online ders de vardır: www.regular-expressions.info. Orada geçirdiğin zaman kendisi için birçok kez üzerinde ödeyecek. Mutlu regexing!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Avast

    Avast

    27 NİSAN 2006
  • Elliot Davin

    Elliot Davin

    28 Kasım 2008
  • kev5124

    kev5124

    9 Kasım 2008