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
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!
Nasıl dize Python küçük harfe dönüştür...
Nasıl bir işlev adı için Python ile bi...
Nasıl bir Python nesne olup olmadığını...
Nasıl bir dize python kullanarak bir k...
Nasıl bir dize düzenli ifade kullanara...