Как-то озадачен тем, как регулярные выражения работают в python, я ищу заменить все запятые внутри строк, которым предшествует буква, и следует либо буквой, либо пробелом. Например:Регулярные выражения: заменить запятую на строку, Python
2015,1674,240/09,PEOPLE V. MICHAEL JORDAN,15,15
2015,2135,602832/09,DOYLE V ICON, LLC,15,15
Первая строка имеет 6 столбцов, а вторая - 7 столбцов. Таким образом, я пытаюсь заменить запятую (N, L) во второй строке пробелом (NL), а так:
2015,2135,602832/09,DOYLE V ICON LLC,15,15
Это то, что я пытался до сих пор, без успеха однако:
new_text = re.sub(r'([\w],[\s\w|\w])', "", text)
Любые идеи, в которых я ошибаюсь?
Помощь была бы очень признательна!
Спасибо, что нашли время, чтобы описать свой подход тщательно! То, как я это понимаю, [a-zA-Z] совпадающие буквы и [a-zA-Z \ s] буквы или пробелы. Но почему бы вам не использовать | выразить или заявить? Во-вторых, в чем разница между «? <=» И «? ="? Разве оно соответствует любой букве (одному или ни одному символу) и букве/пробелу (ровно одному символу)? – chizze
1) Я не использую символ символа '|' внутри [** character class **] (http://www.regular-expressions.info/charclass.html), потому что это необязательно, отношение чередования по умолчанию внутри положительного символьного класса (то есть '[123]' соответствует либо '1', либо' 2', либо '3'). 2) '(? <= ...)' и '(? = ...)' являются [** lookarounds **] (http://www.regular-expressions.info/lookaround.html), пожалуйста прочитайте страницу по ссылке - они используются для проверки наличия какого-либо шаблона, и если он отсутствует, совпадения не происходит. –
Большое спасибо за разъяснение! Я использовал выражение регулярного выражения, и он отлично работает. – chizze