После многих попыток поиска и бесплодных попыток я надеюсь, что кто-то может помочь с этим, по общему признанию, легким вопросом (хотя регулярные выражения для меня явно незнакомы).Регулярное выражение для рисунка между запятой и периодом
У меня есть следующий тип данных:
name <- c("Doe, Mr. John")
и я хочу «мистер» от этого, но фактическое название меняется. Мой главный вопрос заключается в том, как я пишу регулярное выражение, чтобы захватить только часть «г-н», без чего-либо еще?
Мой текущий подход заключается в следующем:
library(stringr)
str_split(name, "[,\\s.]")[[1]][[3]]
и лучшее, что я сумел сделать с помощью экстракции был такой:
str_extract(name, ", .*\\.")
Я уверен, что есть более простой способ, кто может мне помочь ?
Это выглядит очень красиво! Большое спасибо. Быстрый, но смежный вопрос: как заставить «,» быть одним «персонажем» (группа?)? Например, когда я использовал функцию str_split, мое первоначальное намерение состояло в том, чтобы разбить строку на «,» (т. Е. Включая пробел), а также на «.». Но так, как я его написал, это интерпретировалось как «разделение на запятую, точку и пробелы». – hejseb
Возможно, вы имеете в виду, что вы действительно хотели 'str_split (name," [,.] \\ s * ") [[1]] [2]'? Класс символов '[,.]' Соответствует либо ',', либо '.' в текущей позиции. –
BTW, '\ p {L}' можно заменить на '[[: alpha:]]'. Если вам нужно только поддерживать буквы ASCII, вместо '\ p {L}', вы можете использовать обычный класс символов [[A-Za-z]]. –