u"abcde(date="2/xc2/xb2",time="/case/test.png")"
必要なのは括弧内の内容だけです。
回答:
回答№1の152あなたの問題が本当にこれほど単純であるならば、あなたは正規表現を必要としません:
s[s.find("(")+1:s.find(")")]
答え№235
つかいます re.search(r"((.*?))",s).group(1)
:
>>> import re
>>> s = u"abcde(date="2/xc2/xb2",time="/case/test.png")"
>>> re.search(r"((.*?))",s).group(1)
u"date="2/xc2/xb2",time="/case/test.png""
回答№3の21
すべての出現箇所を見つけたい場合は、
>>> re.findall("(.*?)",s)
[u"(date="2/xc2/xb2",time="/case/test.png")", u"(eee)"]
>>> re.findall("((.*?))",s)
[u"date="2/xc2/xb2",time="/case/test.png"", u"eee"]
回答№4の9
tkerwinの答えに基づいて、もしあなたがたまたまのように括弧が入れ子になっていたら
st = "sum((a+b)/(c+d))"
あなたが間にすべてを取る必要がある場合、彼の答えはうまくいきません。 最初 左かっこ そしてその 最終 右括弧 取得するため (a+b)/(c+d)
なぜならfindは文字列の左から検索し、最初の閉じ括弧で止まるからです。
それを修正するには、あなたが使用する必要があります rfind
操作の2番目の部分では、
st[st.find("(")+1:st.rfind(")")]
答え№5の場合は3
import re
fancy = u"abcde(date="2/xc2/xb2",time="/case/test.png")"
print re.compile( "((.*))" ).search( fancy ).group( 1 )