ввод:
- "example (.com)"
вывод:
- "example"
Что я пробовал
import re pattern=re.compile(r'\b\([\W\w]+\)\b') #pattern=re.compile(r'\([\W\w]+\)') print(pattern.sub("","example (.com)"))
Это не сработает, но если я удалю \b, то это отлично работает - почему?
\b
Выясните, что означает \b:
(?:(?=\w)(?<!\w)|(?<=\w)(?!\w))
То есть либо символ слова впереди, а не сзади, или наоборот. Символ слова (\w) означает [A-Za-z0-9_] и не включает ( или ), поэтому между пробелом и скобками нет границы слова.
\w
[A-Za-z0-9_]
(
)
( не является границей слова, поэтому \b не будет соответствовать ей. Вместо этого вы можете использовать \B для соответствия пробелу
\B