Ваш синтаксис Java отключен, для начала. Это то, что вы пытались:
[\W&&[^.]]
Это соответствует символу от пересечения наборов, описываемых «любым несловесным символом» и «любым символом, кроме .
», но это излишне, когда вы можете просто использовать:
[^\w.]
... или "любой символ, который не является символом слова или .
". То же самое в Python (и в большинстве других разновидностей, тоже), хотя вы, вероятно, хотите сопоставить один или несколько символов:
re.split(r'[^\w.]+', the_string)
Но, вероятно, проще использовать подход @ gnibbler для сопоставления частей, которые вы хотите оставить , а не тех, которые вы хотите отбросить:
re.findall(r'[\w.]+', the_string)