Я новичок в регулярном выражении и потратил часы, пытаясь его решить, но не смог, любая помощь будет оценена. У меня есть такой текст: text = "(en termes de résultats et de qualité) sont difficiles à mesurer ....
1 ответ
Ты можешь использовать
re.sub(r"\s*(?!\.')([.,?:])(?!(?<=\d.)\d)\s*", r'\1 ', text)
Сведения о регулярном выражении :
\s*
- ноль или более пробелов(?!\.')
- отрицательный просмотр вперед, который не соответствует, если есть последовательность символов.'
непосредственно справа от текущей позиции([.,?:])
-.
,,
,?
или:
(?!(?<=\d.)\d)
- отрицательный просмотр вперед, который не может соответствовать, если есть цифра (которой непосредственно предшествуют цифра и любой символ) непосредственно справа от текущего местоположения\s*
- ноль или более пробелов.
Если вам нужно добавить больше символов в качестве «синонимов» к '
, просто используйте класс символов. Вот пример с "
и '
:
re.sub(r"""\s*(?!\.['"])([.,?:])(?!(?<=\d.)\d)\s*""", r'\1 ', text)
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.