Найти - Пользователи
Полная версия: вырезать из строки цифровые символы
Начало » Центр помощи » вырезать из строки цифровые символы
1 2
vrabey
есть
такие строки
a = "-1"
b = "2d"
c = "-3sf"
d = "4"
как написать функцию в которую можно передать любую из этих строк а она вернёт
только цифровой символ со знаком
dimy44
Вы с регулярными выражениями (модуль re) знакомы? Если нет- почитайте. За час сами ответ на свой вопрос сможете дать. Эх.
vrabey
dimy44
Вы с регулярными выражениями (модуль re) знакомы? Если нет- почитайте. За час сами ответ на свой вопрос сможете дать. Эх.
пока не знаком но это повод
а пока так решил:
def f2(mystr):
return "".join([s for s in mystr if s.isdigit() or s == "-"])
сегодня нет этого часа
dimy44
Ознакомьтесь. Ваше решение уг.
vrabey
dimy44
Ознакомьтесь. Ваше решение уг.
переписал на так:
def mycut(s):
    pattern = '\-?\d*'
    return re.findall(pattern, s)[0]
JOHN_16
vrabey
в зависимости от того какие там у вас строки (например может ли быть ‘q-15’ и тп) возможно лучше заменить шаблон на ‘\-?\d+’, ведь вы же числа ищете
vrabey
JOHN_16
лучше заменить шаблон на ‘\-?\d+’
этот шаблон точнее только как он работает я не понимаю, а хотелось бы
dimy44
Ну у вас после метасимвола d идет *, что означает 0 и более. Т.е. цифры может и не быть, и, скажем, в строке вида “rt-g” выведет просто “-”.
vrabey
dimy44
Ну у вас после метасимвола d идет *, что означает 0 и более. Т.е. цифры может и не быть, и, скажем, в строке вида “rt-g” выведет просто “-”.
не могу понять почему на строку “q-15” шаблон ‘\-?\d*’ ничего не выводит, а ‘\-?\d+’ работает?
в моём случае ‘*’ - 0 и больше, а ‘+’ - 1 и болше. в моём понимании оба шаблона для строки “q-15” должны работать, но мой не работает
dimy44
Я тоже озадачен, честно говоря. Пустую строку возвращает. Подождём ответ знатоков.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB