Mam ciąg, który może się różnić, ale zawsze będzie zawierał x={stuffNeeded}
.Zwróć ciąg znaków w ciągu znaków na podstawie wyrażenia 'x = {(. *)}'
Na przykład: n=1,x={y,z,w},erore={3,4,5}
lub x={y,z,w}
lub erore={3,4,5},x={y,z,w}
itp
Mam diabeł czasu na zastanawianie się, jak dostać się y,z,w
. Najbliżej znajdowałem odpowiedź opartą na odpowiedzi Yathartha na ten inny wpis Regular expression to return all characters between two special characters.
To moje poszukiwanie, do tej pory natknąłem się na coś, co prawie zadziałało. Testowanie zostało wykonane tutaj http://rubular.com/r/bgixv2J6yF oraz w pythonie.
ten został przetestowany w Pythonie przy użyciu:
i='n=1,x={y,z,w},erore={3,4,5}'
j='n=1,x={y,z,w}'
print re.search('x={(.*)}',i).group(1)
print re.search('x={(.*)}',j).group(1)
print re.search('x={(.*)}.',i).group(1)
print re.search('x={(.*)}.',j).group(1)
wynik dla czterech różnych druku:
'y,z,w'
'y,z,w},erore={3,4,5'
AttributeError: 'NoneType' object has no attribute 'group'
'y,z,w'
Potrzebne wynik jest 'y,z,w'
dla wszystkich przypadków, a następnie, jeśli x={*}
naprawdę nie zostanie znaleziony chciałbym wstawić błąd catch.
Z góry dziękuję.
jest 'x = {YZ, w} "literówka? –
Wzniesiono pod hasłem "diabeł czasu": D –
@ Ev.Kounis: to na pewno był literówka. Dzięki –