Давайте посмотрим на Exemple:Попадая 2 подстроки/группы до и после последней п-й "_"
abc_def_ghi_jkl
Если я выбираю n = 1
, я хочу выход быть:
group1 = abc_def_ghi
group2 = jkl
Если я выбрать n = 2
Я хочу выход быть:
group1 = abc_def
group2 = ghi_jkl
Примечание Удалено _
, разделяющее две группы.
На данный момент я только понял, как выбрать последнюю группу, но также выбрать _
:
(?:.(?!(?=\_)))+$
Примечание2 Я сейчас сосредоточен на регулярных выражениях части, но это код, который будет использоваться в R, если это помогает добраться до решения.
Есть ли конкретная причина использовать регулярное выражение? Для меня использование 'strsplit' в' '_'', за которым следует' paste (..., collapse = '_') ', похоже, является более простым решением для решения этого конкретного примера. – Vandenman
Так просто ... 3 часа, что я рассматриваю проблему неправильно. Благодаря ! Мне все еще интересно узнать больше о регулярном выражении, поэтому, если у кого-то есть ответ :) –
Ну, может быть ответ на основе регулярного выражения с соответствующими группами, например ['^ (. *?) _ ((?: _) ? [^ _] +) {3}) $ '] (https://regex101.com/r/rW0sE8/1). Замените номер внутри '{...}', чтобы получить нужные вам детали. Просто, когда вы используете число за пределами диапазона, поведение может стать странным. –