2016-04-05 12 views
0

Ben böyle bir dizesi:değil piton regex ile bir kelime içinde tek alıntının tüm kayıp bulmak için nasıl

'adı': 'Janya en Tay Delight'

İstiyorum Tek tırnakların her ikisini de harflerle çevrili olmadıkları sürece çift tırnak işareti ile değiştirin. Diğer bir deyişle, Janya's'daki tek tırnak işareti dışında bir alıntı yapmak istiyorum. Bunun işe yarayacağını düşündüm, ama değil.

re_string = '\'(?![a-z])|\'(?=[a-z])' 
re.sub(re_string, '"', "'name': 'Janya's Thai Delight'") 
# results in: "name": "Janya"s Thai Delight" 

Beklenen sonuç:"name": "Janya's Thai Delight"

+0

var? –

+0

@noob Beklenen sonuç olmalıdır "" \ "isim \": \ "Janya'nın Thai Delight \" " –

+0

Bu bir taslaktan gelmiş gibi görünüyor, nasıl bu formda onunla bittin? –

cevap

0

regex aşağıdaki deneyin.

Regex:(?<![a-zA-Z])'|'(?![a-zA-Z]) ve "

Açıklama ile değiştirin:

  • (?<![a-zA-Z])' eşleşmeler bir mektup önünde değil kesme işareti. Eşanlamlılar, bir harfle ve ardından bir harfle eşleşir. Yani beklenen sonuç ne

Regex101 Demo

+1

Çok teşekkür ederim! –

+0

@PadraicCunningham: Bu durumda normal ifade değiştirilebiliyordu ama soru ** bir şey var mıydı? OP bir şey belirtmedi. Görünüşe göre sadece alfabe ile ilgileniyor. –

İlgili konular