У меня есть сложный сценарий использования регулярных выражений в Python.
Вот пример:
Вход:
text = """4056,"Wholesale, Operations","Performed some ""activities"", at 10 am. ",19/12/2022,,"a,B" """
Ожидаемый результат:
4056,DUMMY,DUMMY,19/12/2022,,DUMMY
По сути, я хочу заменить все в " "
на DUMMY
. Однако я хотел бы экранировать текст, заключенный в "" ""
. Как видно из примера, "Performed some ""activities"", at 10 am. "
следует заменить целиком.
Какие-нибудь советы? Очень признателен!
2 ответа
Вы можете добиться этого, используя регулярные выражения в Python. В частности, вы можете использовать модуль re для поиска и замены текста, заключенного в двойные кавычки, обеспечивая при этом экранирование двойных кавычек.
import re
text = """4056,"Wholesale, Operations","Performed some ""activities"", at 10 am. ",19/12/2022,,"a,B" """
# Define a regular expression pattern to match text within double quotes
pattern = r'(".*?(?:""|[^"])*")'
# Define a function to replace the matched text with 'DUMMY'
def replace_match(match):
return 'DUMMY'
# Use re.sub() to replace the matched text
result = re.sub(pattern, replace_match, text)
print(result)
Этого можно добиться, определив шаблон и заменив его фиктивными.
import re
text = """4056,"Wholesale, Operations","Performed some ""activities"", at 10 am. ",19/12/2022,,"a,B" """
pattern = r'(".*?(?:""|[^"])*")'
def replace_match(match):
return 'DUMMY'
result = re.sub(pattern, replace_match, text)
print(result)
Выход:
4056,DUMMY,DUMMY,19/12/2022,,DUMMY
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.
"(?:"".*?""|[^"])*"
"fo""o"
; падение.*?""
:"(?:[^"]|"")*"
.