Regex: взять все после матча

1

У меня много строк в dataframe, например:

adrianos ristorante 2930 beverly glen circle los angeles 310475 9807 italian

Я хочу взять все слова/символы после номера телефона. У меня есть регулярное выражение для получения номера телефона и пробела после (([0-9]{6}\s[0-9]{4})\s). То, что я хочу, это все персонажи после этого. В этом случае он italian но он может быть чем-то вроде asian fusion или indian and thai.

  • 2
    Попробуйте [0-9]{6}\s[0-9]{4}\s+(.+) . Это Панда дф?
  • 0
    Да я пользуюсь пандами
Показать ещё 2 комментария
Теги:
pandas

4 ответа

2
Лучший ответ

В Пандах вы можете использовать

[0-9]{6}\s[0-9]{4}\s+(.+)
                    ^^^^^

Код будет выглядеть так:

df['col'].str.extract('[0-9]{6}\s[0-9]{4}\s+(.+)')

Обратите внимание, что вы должны обернуть часть, которую вам нужно извлечь, с помощью группы захвата (...). См. Ссылку на Pandas:

pat: string

Форма регулярного выражения с группами захвата

0

Вы можете сделать (в Notepad++):

Найти что: (.) ([0-9] {6}\s [0-9] {4})\s (.) Заменить: $ 3

$ 3 дает третий аргумент, который является всем после вашего соответствующего номера телефона.

0

Используя это регулярное выражение: /([0-9]{6}\s[0-9]{4})\s(.*$)/m

У вас будет что угодно после номера телефона, до конца строки (вы можете опустить флаг m если хотите получить все до конца строки) во второй группе захвата.

0

Вы можете использовать положительный lookbehind:

(?<=[0-9]{6}\s[0-9]{4}\s).*

Regex101.

  • 0
    Это приводит к следующей ошибке в пандах: pattern contains no capture groups

Ещё вопросы

Сообщество Overcoder
Наверх
Меню