Это должно быть легко, но мне удалось озадачить 2 человек до сих пор на работе, и я был в ней больше 3 часов теперь, таким образом, здесь идет.
Я должен заменить + aplus (наряду с несколькими другими случаями) с модулем ре Python. например, "Я передал мой + экзамен". потребности стать "Я сдал свой aplus экзамен".
Просто использование \ba + хорошо работает большую часть времени, но перестало работать в случае a+b, таким образом, я не могу использовать его, это должно соответствовать + как отличное слово. Я попробовал \ba +\b, но это перестало работать, потому что я принимаю +, граница слова.
Я также попробовал \ba +\W, который действительно работает, но является жадным и съедает пространство (или любой другой неальфа-символ, который был бы там).
Какие-либо предложения?
Превратите \ W
в утверждение.
\ba\+(?=\W)
или, лучше,
\ba\+(?!\w)
, поскольку отрицательное утверждение также позволяет сопоставить a +
в конце строки.
Вам нужно экранировать +, так как он имеет особое значение в регулярном выражении (один или несколько a).
поиск a \ +
вместо a +
>>> re.sub(r'\ba\+\s', 'aplus ', 'I passed my a+ exam.')
'I passed my aplus exam.'
>>> re.sub(r'\ba\+\s', 'aplus ', 'a+b')
'a+b'