Я работаю над функцией, которая сохраняет символы, находящиеся внутри слова (слово может состоять из a-zA-Z, 0-9 и _), но удаляет все остальные символы вне слова:Альтернативный подход к символам полосы в строке
For example:
Input String - hell_o ? my name _ i's <hel'lo/>
Output - ['hell_o' ,'my', 'name', '_', "i's" ,'hel'lo']
функция я использую:
l = ' '.join(filter(None,(word.strip(punctuation.replace("_","")) for word in input_String.split())))
l = re.sub(r'\s+'," ",l)
t = str.split(l.lower())
Я знаю, что это не самый лучший, оптимальный путь !! кто-нибудь рекомендовать ли какие-либо альтернативные варианты, которые я могу попробовать ?? Наверное Regex сделать это??
Я попытался с помощью: негативный взгляд вокруг и выглядеть задом:
\W+(?!\S*[a-z])|(?<!\S)\W+
s.strip(punctuation)
re.sub('[^\w]', ' ', doc.strip(' ').lower())
- Это удаляет знаки препинания внутри слова слишком
Если вы * * знаете, что это не '' 'лучший, optimal''' путь, то вы должны иметь некоторые альтернативы в виду - перечислите те (в вопросе) и причины, по которым вы их отвергаете, чтобы мы знали, на что не работать. – wwii