Ответ 1
Вы можете сделать это с помощью re, но метод разделения строк не принимает регулярное выражение, он принимает строку.
Вот один из способов сделать это с помощью re:
import re
word1 = " ".join(re.findall("[a-zA-Z]+", st))
В Python я хочу извлечь только символы из строки.
У меня есть следующая строка,
input = "{('players',): 24, ('year',): 28, ('money',): 19, ('ipod',): 36, ('case',): 23, ('mini',): 46}"
Я хочу получить результат как,
output = "players year money ipod case mini"
Я попытался разделить, рассматривая только алфавиты,
word1 = st.split("[a-zA-Z]+")
Но раскола не происходит.
Вы можете сделать это с помощью re, но метод разделения строк не принимает регулярное выражение, он принимает строку.
Вот один из способов сделать это с помощью re:
import re
word1 = " ".join(re.findall("[a-zA-Z]+", st))
string.split() не принимает регулярных выражений. Вы хотите что-то вроде:
re.split("[^a-zA-Z]*", "your string")
и получить строку:
" ".join(re.split("[^a-zA-Z]*", "your string"))
Я думаю, что вы хотите все слова, а не символы.
result = re.findall(r"(?i)\b[a-z]+\b", subject)
Объяснение:
"
\b # Assert position at a word boundary
[a-z] # Match a single character in the range between "a" and "z"
+ # Between one and unlimited times, as many times as possible, giving back as needed (greedy)
\b # Assert position at a word boundary
"
Как насчет этого?
>>> import ast
>>> " ".join([k[0] for k in ast.literal_eval("{('players',): 24, ('year',): 28, ('money',): 19, ('ipod',): 36, ('case',): 23, ('mini',): 46}").keys()])
'case mini year money ipod players'
Или если вы хотите, чтобы все символы были независимо от слов или пустых пространств
a = "Some57 996S/tr::--!!ing"
q = ""
for i in a:
if i.isalpha():
q = "".join([q,i])
печать q 'SomeString'
import re
string = ''.join([i for i in re.findall('[\w +/.]', string) if i.isalpha()])
#'[\w +/.]' -> it will give characters numbers and punctuation, then 'if i.isalpha()' this condition will only get alphabets out of it and then join list to get expected result.
# It will remove spaces also.
Вы можете использовать итерацию по строке и использовать функцию isalpha
чтобы определить, является ли это символом альфа или нет. Если это так, вы можете добавить его к выходной строке.
a = "Some57 996S/tr::--!!ing"
q = ""
for i in a:
if i.isalpha():
q = "".join([q,i])