Простое регулярное выражение в Python Three для замены текста между '|' и символы '/' - PullRequest
0 голосов
/ 11 марта 2019

Я хочу заменить текст между '|'и '/' в строке ("| 伊士曼柯达 公司 /") с "!!!".

s = '柯達⑀柯达⑀ /Kodak (brand, US film company)/full name Eastman Kodak Company 伊士曼柯達公司|伊士曼柯达公司/'
print(s)
s = re.sub(r'\|.*?\/.', '/!!!', s)
print('\t', s)

Сначала я протестировал код на https://regex101.com/,, и он отлично работал.

Я не могу понять, почему он не выполняет замену в python.

Варианты побега, которые я пробовал, также включают:

s = re.sub(r'|.*?\/.', '!!!', s)
s = re.sub(r'|.*?/.', '!!!', s)
s = re.sub(r'\|.*?/.', '!!!', s)

Каждый разстрока выходит без изменений.

1 Ответ

1 голос
/ 11 марта 2019

Вы можете изменить свое регулярное выражение на это, которое использует обходные пути, чтобы убедиться, что перед тем, что вы хотите заменить, стоит |, а затем /

(?<=\|).*?(?=/)

Проверьте этот код Python,

import re

s = '柯達⑀柯达⑀ /Kodak (brand, US film company)/full name Eastman Kodak Company 伊士曼柯達公司|伊士曼柯达公司/'
print(s)
s = re.sub(r'(?<=\|).*?(?=/)', '!!!', s)
print(s)

Отпечатки, как вы ожидаете,

柯達⑀柯达⑀ /Kodak (brand, US film company)/full name Eastman Kodak Company 伊士曼柯達公司|伊士曼柯达公司/
柯達⑀柯达⑀ /Kodak (brand, US film company)/full name Eastman Kodak Company 伊士曼柯達公司|!!!/

Демонстрация Python онлайн

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...