Вам нужно (?<=...)
вместо (?!...)
, бывших стендов для вида сзади а вторые обозначает отрицательного взгляд вперед, если вы хотите заменить c
после пробела или цифр, то вам нужно использовать вид сзади ограничение:
str1 = "Some plastic insert c lids were cracked, temperature was between 8c and 8.8c."
import re
re.sub(r"(?<=\s)c(?=\s)|(?<=\d)c", "C", str1)
# 'Some plastic insert C lids were cracked, temperature was between 8C and 8.8C.'
в зависимости от того, как вы определяете опустеют, граница слова может быть лучше подходит:
re.sub(r"\bc\b|(?<=\d)c", "C", str1)
# 'Some plastic insert C lids were cracked, temperature was between 8C and 8.8C.'
Update для случая в комментарии:
str2 = "Ensure that noodles soaked in water are kept at or 4 c. Noodles are moved to walk in cooler. * Ensure that perishable food is chilled rapidly as * A) temperature from 60 c-20 C must fall within two hrs"
re.sub(r"\bc\b|(?<=\d)c", "C", str2)
# 'Ensure that noodles soaked in water are kept at or 4 C. Noodles are moved to walk in cooler. * Ensure that perishable food is chilled rapidly as * A) temperature from 60 C-20 C must fall within two hrs'
я думаю, что это будет лучше 'г 'с (= \ s | $?) | ((<= [\ S \ d]?) ? <= ^) c (? = \ s) '' – rock321987
@ rock321987 абсолютно, Это зависит от того, что означает OP для одиночного. Добавлен более общий параметр границы слова для него. – Psidom
Я пробовал это, и некоторые из них пропущены: «Убедитесь, что лапша, смоченная в воде, удерживается на уровне или 4 C. Лапша перемещается, чтобы ходить в кулере. * Убедитесь, что скоропортящиеся продукты быстро охлаждают, как * A) температура от 60 c-20 C должен упасть в течение двух часов » – MoreScratch