Добавление одиночного обратного слэша к шаблону Regex в Python [дубликат]

После дикой гусиной погони с множеством попыток Google и попыток поиска, я думаю, что нашел, как решить эту проблему.

Шаги, предпринятые для решения проблемы:

  1. Удалить R
  2. Переустановить R
  3. Установить ggplot с аргументом зависимостей для install.packages, установленным в TRUE install.packages("ggplot2",dependencies = TRUE)
  4. Вышеупомянутый шаг по-прежнему НЕ включает Rcpp, поэтому его необходимо вручную установить с помощью следующей команды install.packages("Rcpp")

Однако, хотя вышеупомянутая команда успешно загружает Rcpp, по какой-то причине она не может взорвать ZIP-файл и установить это в моей библиотеке библиотеки R, ссылаясь на следующую ошибку:

пакет «Rcpp» успешно распакован и проверены суммы MD5 Предупреждение в install.packages: невозможно переместить временную установку «C:\root_Prgs \ Data_Science_SW\r\r-3.2.3 \ library \ file27b8ef47b6d\rcpp 'to' C:\root_Prgs \ Data_Science_SW\r\r-3.2.3 \ library\rcpp '

Загруженные двоичные пакеты находятся в папке C: \ Users \ MY_ USER_ID \ AppData \ Local \ Temp\rtmp25XQ0S \ download_packages

  1. Обратите внимание, что вышеприведенный вывод говорит «Предупреждение», но на самом деле это указывает на невозможность установки пакета Rcpp успешно в течение репозиторий. Затем я использовал Инструменты -> Установить пакеты -> Из ZIP-файла и указал на местоположение «загруженных бинарных пакетов» в сообщении выше -

C:\Users\MY_USER_ID\AppData\Local\Temp\Rtmp25XQ0S\downloaded_packages\Rcpp_0.12.3.zip

  1. Это привело к успешной установке Rcpp в мою папку R\r-3.2.3 \ library, тем самым гарантируя, что Rcpp теперь доступен, когда я пытаюсь загрузить библиотеку для ggplot2. Я не мог сделать этот шаг в прошлом, потому что моя предыдущая установка R вывела бы ошибку, заявив, что Rcpp не может быть импортирован. Тем не менее, эта же команда работала после того, как я удалил и переустановил R, что является ODD. install.packages ("C: /Users/MY_USER_ID/AppData/Local/Temp/Rtmp25XQ0S/downloaded_packages/Rcpp_0.12.3.zip", repos = NULL, type = "win.binary") пакет «Rcpp» успешно распакован и суммы MD5 checked`
  2. Наконец-то я смог успешно загрузить библиотеку ggplot2. library(ggplot2)
170
задан S.Lott 11 November 2008 в 15:29
поделиться

4 ответа

Используйте функцию re.escape() для этого:

4.2.3 re Содержание модуля

escape (string)

Возвращаемая строка со всеми неалфавитными спицами; это полезно, если вы хотите сопоставить произвольную литеральную строку, которая может иметь в ней метасимволы регулярного выражения.

Простейший пример, поиск любого присутствия предоставленной строки, необязательно сопровождаемого 's', и вернуть объект соответствия.

def simplistic_plural(word, text):
    word_or_plural = re.escape(word) + 's?'
    return re.match(word_or_plural, text)
235
ответ дан 200_success 18 August 2018 в 18:33
поделиться

Вы можете использовать re.escape () :

re.escape (string) Возвращаемая строка со всеми неалфавитами обратной косой черты; это полезно, если вы хотите сопоставить произвольную литеральную строку, которая может содержать метасимволы регулярного выражения.

>>> import re
>>> re.escape('^a.*$')
'\\^a\\.\\*\\$'
43
ответ дан gimel 18 August 2018 в 18:33
поделиться

Попробуйте:

\ Q и \ E в качестве якорей

Поместите условие Or в соответствие с полным словом или регулярным выражением.

Ref Ссылка: Как совместить целое слово, которое включает специальные символы в регулярном выражении

-2
ответ дан guru 18 August 2018 в 18:33
поделиться

К сожалению, re.escape() не подходит для заменяющей строки:

>>> re.sub('a', re.escape('_'), 'aa')
'\\_\\_'

Решение состоит в том, чтобы поместить замену в лямбда:

>>> re.sub('a', lambda _: '_', 'aa')
'__'

, потому что возвращаемое значение лямбда обрабатывается re.sub() как литеральная строка.

0
ответ дан Owen 18 August 2018 в 18:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: