Ruby look for error regex: неверный шаблон в запросе - PullRequest
1 голос
/ 20 июня 2019

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

EG в строке: FILE_NAME.EXTENSION.OTHEREXTENSIONadasd ^^ assdassds34

захваченные символы должны быть ".OTHEREXTENSIONadasd ^^ assdassds34"

Поэтому я должен получить: "FILE_NAME.EXTENSION"

Регулярное выражение, которое я пробовал, захватывает все символы после первого "." или выдает ошибку: неверный шаблон в запросе

Первый пример, который вызывает ошибку:

string = "FILE_NAME.EXTENSION.OTHEREXTENSIONadasd^^assdassds34"

string.gsub(/(?<=[.]\S+)[.]\S+/, '')

Второй пример, который неправильно фиксирует '.EXTENSION.OTHEREXTENSIONadasd ^^ assdassds34':

string = "FILE_NAME.EXTENSION.OTHEREXTENSIONadasd^^assdassds34"

string.gsub(/(?<=[.])\S*?[.]\S*/, '')

1 Ответ

1 голос
/ 20 июня 2019

Вы можете использовать

s = s.gsub(/\A([^.]*\.[^.]*)\..*/, '\1')

См. Демонстрационную версию регулярных выражений и график регулярных выражений:

enter image description here

Детали

  • \A - начало строки
  • ([^.]*\.[^.]*) - Группа 1: 0+, не точки, точка и 0+, не точка-dots
  • \. - точка
  • .* - любые 0 или более символов, кроме символов разрыва строки.
...