простейший питон, эквивалентный R gsub Существует ли простой/однострочный питон, эквивалентный функции R gsub? strings = c("Important text, !Comment that could be removed", "Other String") gsub("(,[ ]*!.*)$", "", strings) # [1] "Important text" "Other String" Ответ 1 Для строки: import re string = "Important text, !Comment that could be removed" re.sub("(,[ ]*!.*)$", "", string) Поскольку вы обновили свой вопрос, чтобы он представлял собой список строк, вы можете использовать понимание списка. import re strings = ["Important text, !Comment that could be removed", "Other String"] [re.sub("(,[ ]*!.*)$", "", x) for x in strings] Ответ 2 gsub - это обычная sub в python, то есть по умолчанию она выполняет несколько замен. Подпись метода для re.sub - это sub(pattern, repl, string, count=0, flags=0) Если вы хотите сделать одну замену, укажите count=1: In [2]: re.sub('t', 's', 'butter', count=1) Out[2]: 'buster' re.I - флаг нечувствительности к регистру: In [3]: re.sub('here', 'there', 'Here goes', flags=re.I) Out[3]: 'there goes' Вы можете передать функцию, которая принимает объект соответствия: In [13]: re.sub('here', lambda m: m.group().upper(), 'Here goes', flags=re.I) Out[13]: 'HERE goes'
Ответ 1 Для строки: import re string = "Important text, !Comment that could be removed" re.sub("(,[ ]*!.*)$", "", string) Поскольку вы обновили свой вопрос, чтобы он представлял собой список строк, вы можете использовать понимание списка. import re strings = ["Important text, !Comment that could be removed", "Other String"] [re.sub("(,[ ]*!.*)$", "", x) for x in strings]
Ответ 2 gsub - это обычная sub в python, то есть по умолчанию она выполняет несколько замен. Подпись метода для re.sub - это sub(pattern, repl, string, count=0, flags=0) Если вы хотите сделать одну замену, укажите count=1: In [2]: re.sub('t', 's', 'butter', count=1) Out[2]: 'buster' re.I - флаг нечувствительности к регистру: In [3]: re.sub('here', 'there', 'Here goes', flags=re.I) Out[3]: 'there goes' Вы можете передать функцию, которая принимает объект соответствия: In [13]: re.sub('here', lambda m: m.group().upper(), 'Here goes', flags=re.I) Out[13]: 'HERE goes'