Поиск слова, находящегося после не буквенно-цифрового символа

#regex #python-3.x

#регулярное выражение #python-3.x

Вопрос:

Итак, я хотел бы повторно реализовать todo.txt в python в качестве учебного проекта. Теперь я хотел бы (для тестирования), чтобы, если я добавлю, скажем, Задать вопрос в SO StackOverflow, я хотел бы перепечатать StackOverflow (НЕ задавать вопрос в SO StackOverflow, поскольку регулярные выражения — это сложная часть, остальное — сливочный сыр (остальная часть owl).

Я пытался использовать W для этого, но все, что Python выдает мне, это [] .

 import re
todo = input("")
plusregex = re.findall("W  ", todo)
print(plusregex)
  

Спасибо вам за все, сообщество SO!

Комментарии:

1. Вам следует либо использовать lookbehind, либо capture groups (которые являются более гибкими).

2. Если вы пытаетесь извлечь «теги», может быть, поможет регулярное выражение [^s] ? (Буквенный плюс, за которым следует что угодно, кроме повторяющегося пробела)

3. re.findall(r"w ", todo) ?

Ответ №1:

Регулярное выражение [^ws]w помогло бы захватить слова, начинающиеся не с буквенно-цифровых символов:

 import re
todo = "Ask a Question on SO  StackOverFlow  test"
plusregex = re.findall("[^ws]w ", todo)
print(plusregex)
  

который выводит: [' StackOverFlow', '@python', '!test']