Извлечь подстроку из двух символов - Python DataFrame - PullRequest
0 голосов
/ 08 сентября 2018

Что означает локатор строк ', \s*([^\.]*)\s*\.' =?

У меня есть кадр данных, идентичный Извлечь подстроку между 2 специальными символами из одного столбца Pandas DataFrame

и хотите извлечь подстроку, расположенную между "," и ".". Благодаря почтовому ответу, путь будет таким, как показано ниже:

In [157]: df['Title'] = df.Name.str.extract(r',\s*([^\.]*)\s*\.', expand=False)

In [158]: df
Out[158]:
                   Name   Title
0        Jim, Mr. Jones      Mr
1     Sara, Miss. Baker    Miss
2     Leila, Mrs. Jacob     Mrs
3  Ramu, Master. Kuttan  Master

Хотя я вижу, что результат правильный, что означает ',\s*([^\.]*)\s*\.'? В частности, что означает «*» и «\»?

1 Ответ

0 голосов
/ 08 сентября 2018

Это означает следующее совпадение:

  • a , (запятая)
  • , за которым следует \s* ноль или более символов пробела (табуляция, пробелы и т. Д.)
  • , за которым следует ([^\.])* ноль или более символов, которые не являются . (точка)
  • , за которым следует \s* ноль или более пробелов
  • , за которым следует \. (точка)

Подробнее о регулярных выражениях вы можете узнать в здесь .

UPDATE

Как уже упоминалось в @UnbearableLightness, символ \ является избыточным внутри набора символов для экранирования . (точка). Набор символов - это что-то определенное между [].

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