YouReTs
@YouReTs

Как извлечь нужный текст из строки Python?

Всем доброго времени суток!

Есть строка "[Win32Window(hWnd=123456)]" нужно убрать "[Win32Window(hWnd=)]" и оставить только "123456"

Вопрос: как проще?
  • Вопрос задан
  • 407 просмотров
Пригласить эксперта
Ответы на вопрос 4
Hivemaster
@Hivemaster
Админ, который хочет программировать
s = '[Win32Window(hWnd=123456)]'
d = s[s.index('=')+1:s.rindex(')')]
Ответ написан
@ceytnot
Ищу работу (:
Если совсем просто и без подключения сторонних библиотек:
stroka = "[Win32Window(hWnd=123456)]"    # исходная строка
stroka = stroka.replace("[Win32Window(hWnd=", "")    # заменяем стандартным методом "[Win32Window(hWnd=" на пусто ""
stroka = stroka.replace(")]", "")    # заменяем стандартным методом ")]" на пусто ""
print(stroka)    # получаем 123456

Можно еще упростить, если написать две строки с replace в одну:
stroka = stroka.replace("[Win32Window(hWnd=", "").replace(")]", "")
Ответ написан
Комментировать
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
s = "[Win32Window(hWnd=123456)]"

for n, i in enumerate([')', 'hWnd=']):
    s = s.split(i)[n]
if s.isdigit():
    print(s)
else:
    print("Цифры не найдены")


А еще любопытный вариант:
s = "[Win32Window(hWnd=123456)]"
print(s[18:-2])
Ответ написан
Комментировать
@Bright144
Это выводить только одну совпадение в тексте:
import re

txt = '[Win32Window(hWnd=123456)]'
r = re.compile(r'\[Win32Window\(hWnd=(\d+)\)]')
result = r.match(txt)[1]
print(result)

Это выводить всех совпадение в тексте:
import re

txt = '[Win32Window(hWnd=123456)]ahjkffkfk[Win32Window(hWnd=12)]asdfg[Win32Window(hWnd=)]'
r = re.compile(r'\[Win32Window\(hWnd=(\d+)\)]')
result = r.findall(txt)
for i in result:
    print(i)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы