2016-11-12 2 views
1

У меня возникли проблемы с регулярным выражением, чтобы я мог получить все, начиная с символа и заканчивая вторым экземпляром другого символа.Regex | Регулярные выражения | Получение чего-либо от начала символа до второго экземпляра различного символа

Ex. "matchVersion":"6.22.165.3566" should result in = 6.22 

Я попытался ответить, что rvalvik отправил здесь, regex match till a character from a second occurance of a different character, но это решает только часть проблемы, как показано ниже.

Example

(?<=:")[^:]+?(?=") 

Я хотел бы expresion сделать это как коснуться вместо этого.

Example

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

Спасибо за любую помощь.

+1

Попробуйте [ '(? <=:") [^ ".] + \. [^".] + '] (https://regex101.com/r/yDxJbf/1) –

+0

@ WiktorStribiżew совершенное спасибо. –

ответ

1

Он пытался получить все после того, как :" и до второго вхождения в .

Вы можете использовать отрицание класса символов:

(?<=:")[^".]+\.[^".]+ 

Смотрите regex demo

  • (?<=:") - задница ГЭР, что есть :" перед текущей позицией
  • [^".]+ - 1+ символы, кроме . и "
  • \. - это точка
  • [^".]+ - 1+ кроме . символов и "
+1

Принято :) спасибо –

Смежные вопросы