İki eğik çizgi arasında düzenli ifadelerle eşleşen normal bir ifade oluşturmaya çalışıyorum. Benim asıl sorunum, düzenli ifadelerin, ters eğik çizgi ile kaçan ileri eğik çizgi içermeleridir. Negatif bir lookbehind iddiasıyla filtrelemeye çalışıyorum (sadece şu anki pozisyonda herhangi bir geri tepme yoksa kapanma eğrisi ile eşleşir), ancak şimdi regex'in kendisinde olmama problemi yaşıyorum. aslında kaçtı bir ters eğik çizgi ile biter.Normal ifade: Dizgenin kendisi kaçan eğik çizgi içeriyorsa iki eğik çizgi arasındaki dizeyi eşleştirin
test programı:
#!/usr/bin/python
import re
teststrings=[
"""/hello world/""",
"""/string with foreslash here \/ and here\//""",
"""/this one ends with backlash\\\\/"""]
patt="""^\/(?P<pattern>.*)(?<!\\\\)\/$"""
for t in teststrings:
m=re.match(patt,t)
if m!=None:
print t,' => MATCH'
else:
print t," => NO MATCH"
çıkışı:
/hello world/ => MATCH
/string with foreslash here \/ and here\// => MATCH
/this one ends with backlash\\/ => NO MATCH
nasıl iki yalnızca geçerli konumda tek boşluk varsa vurmak için iddiasını değiştirebilir ama değil mi?
Ya da normal ifadeleri ayıklamak için daha iyi bir yolu var mı? (Gerçek dosyasında ben çizgiler sadece regex daha içerirler ayrıştırmak deneyin Not ben sadece satır başına ilk ve son eğik çizgi aramak ve inbetween her şeyi elde edemez..)
, sen kaçabilirdi eğik çizgi? –
Evet, regex sonra dize – Gryphius