верхний регистр все значения в кавычках "" кроме тех, которые идут после определенных слов - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь заменить каждое слово в кавычках "" на заглавное слово, кроме тех, которые идут после слова "затем" в столбце pandas: например:

0 There was a "quick" "brown" fox who "jumped" over the wall then "fell" and broke its "tooth"

вывод должен быть :

0 There was a "QUICK" "BROWN" fox who "JUMPED" over the wall then "fell" and broke its "TOOTH"

, хотя я не могу найти слова в кавычках, но я не могу исключить слово, идущее сразу после слова "затем".

df.str.replace({r'"(.*?)"':r'\U$1') #this will select and replace all values in quotes to uppercase also values after then

, пожалуйста, помогите.

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

Вы можете использовать регулярное выражение (?<!then\s)"(\w*)", чтобы найти слова в кавычках, которым НЕ предшествует 'then' & 'space'

"(\w*)" = Искать слова в кавычках

(?<!then\s) = Убедитесь, что слова, которые соответствуют "(\w*)", не имеют «затем» и «пробел» перед ним (отрицательный просмотр)

RegexDemo Вы можете увидеть демонстрацию регулярного выражения здесь (вы можете указать несколько других строк, чтобы проверить, как регулярное выражение также работает с ними)

Regex-info Это очень всеобъемлющий веб-сайт (вид go - на сайт для всех вещей регулярных выражений) на регулярных выражениях, почти все концепции регулярных выражений следует ответить здесь. Это не зависит от языка программирования и имеет много информации, которая может быть подавляющей.

Regex Cheat-Sheet Я бы сказал, начните с этой шпаргалки, это очень просто и объясняется в простом слова. Я нахожу это очень полезным.

0 голосов
/ 20 февраля 2020

String = Он "съел" "пингвина", затем "играл с гамбургером. Превратите строку в список, разбивающий на слово затем. Преобразуйте список [0] в строку и используйте if" "' в пункте, чтобы выделить цитируемые слова. Прописной. Затем разделите пробелы, используйте объединение, чтобы снова собрать всю строку вместе, и там ya go

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