import re
s = ' ~boom ~НетПлана ~sweb '
d = re.findall(r'\s~([\w\d]+?)\s', s, re.LOCALE | re.U)
print d
import re
s = ' ~boom ~НетПлана ~sweb '
d = re.findall(r'\s~([\w\d]+?)\s', s, re.LOCALE | re.U)
print d
s = u' ~noData ~НетДаты ~sweb '
import re
d = re.findall(r'~(\w+)',s,re.U)
for i in d:
print i
>>> import re
>>> s = ' ~boom ~НетПлана ~sweb '
>>> re.findall(r'\s~(\w+)\s', s, re.LOCALE)
['boom', 'sweb']
>>> re.findall(r'\s~(\w+)(?=\s)', s, re.LOCALE)
['boom', '\xcd\xe5\xf2\xcf\xeb\xe0\xed\xe0', 'sweb']
Nikчто то не прокатило, (ubuntu 9.10)>>> import re
>>> s = ' ~boom ~НетПлана ~sweb '
>>> re.findall(r'\s~(\w+)\s', s, re.LOCALE)
['boom', 'sweb']
>>> re.findall(r'\s~(\w+)(?=\s)', s, re.LOCALE)
['boom', '\xcd\xe5\xf2\xcf\xeb\xe0\xed\xe0', 'sweb']
Python 2.6.4 (r264:75706, Dec 7 2009, 18:45:15)
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> s = ' ~boom ~НетПлана ~sweb '
>>> re.findall(r'\s~(\w+)\s', s, re.LOCALE)
['boom', 'sweb']
>>> re.findall(r'\s~(\w+)(?=\s)', s, re.LOCALE)
['boom', 'sweb']
>>> s = u' ~boom ~НетПлана ~sweb '
>>> re.findall(r'\s~(\w+)(?=\s)', s, re.U)
[u'boom', u'\u041d\u0435\u0442\u041f\u043b\u0430\u043d\u0430', u'sweb']
o7412369815963Это зависит от настройки локали. Чтобы зависимости не было лучше указывать символы явным образом, а не классом:
что то не прокатило, (ubuntu 9.10)
r'\s~([a-zA-Zа-яА-ЯёЁ0-9_]+)(?=\s)'