Форум сайта python.su
0
stroka_IP = str(re.findall (r'61)(+)',ddd))
подскажите - ругается на это регулярное выражение :
Traceback (most recent call last):
File “C
Python33/IPver5.py”, line 37, in <module>
stroka_IP = str(re.findall (r'61)(+)',ddd))
File “C:\Python33\lib\re.py”, line 201, in findall
return _compile(pattern, flags).findall(string)
File “C:\Python33\lib\functools.py”, line 258, in wrapper
result = user_function(*args, **kwds)
File “C:\Python33\lib\re.py”, line 274, in _compile
return sre_compile.compile(pattern, flags)
File “C:\Python33\lib\sre_compile.py”, line 493, in compile
p = sre_parse.parse(p, flags)
File “C:\Python33\lib\sre_parse.py”, line 729, in parse
raise error(“unbalanced parenthesis”)
sre_constants.error: unbalanced parenthesis
каким образом тогда мне найти в тексте подстроку 61) и все что следует за ней до буквы N ?
Отредактировано MarkHammer (Март 7, 2013 22:19:37)
Офлайн
findall вообщето список возвращает
import re s = 'bm61ajgNBM61CABNJM' r = re.findall(r'(61.+?)N', s) for i in r: print i >>> 61ajg 61CAB >>>
Офлайн
7
Воспользуйтесь функцией поиска.
Офлайн
0
dimy44
findall вообщето список возвращает
Офлайн
15
import re s = '61)172.24.3.1Nfalkj;ljk;ljgadfkal;61;lkaj;fNl;kj;lajkga61)172.23.2' \ '.2Nkjl;ajg;l' print(re.findall(r'\d+\.\d+\.\d+\.\d+', s)) #Ответ: ['172.24.3.1', '172.23.2.2']
Офлайн
да, скобки это управляющие символы и экранируются бэкслэшем, если их нужно читать как есть.
import re s = '61)172.24.3.1Nfalkj;ljk;ljgadfkal;61;lkaj;fNl;kj;lajkga61)172.23.2.2Nkjl;ajg;l' r = re.findall(r'61\)([\d\.]+)N', s) print(r) >>> ['172.24.3.1', '172.23.2.2'] >>>
Офлайн
0
smoke853к сожалению так тоже не выйдет - так как надо находить только айпишники следующие после 61)
Офлайн
0
dimy44
да, скобки это управляющие символы и экранируются бэкслэшем, если их нужно читать как есть.
Офлайн