Проблема с регулярным выражением, избегайте первого знака и получайте второй - PullRequest
0 голосов
/ 02 мая 2020

У меня небольшая проблема. Я пытаюсь извлечь некоторые совпадения из строки, как это. Но я не знаю, как это сделать. Спасибо

2+22 -> match1: 2 ; match2: 22 * ​​1007 *

2-22 -> match1: 2 ; match2: 22 * ​​1014 *

2++22 -> match1: 2 ; match2: + 22 * ​​1021 *

2+-22 -> match1: 2 ; match2: -22

1 Ответ

1 голос
/ 02 мая 2020

Я не знаю, какой язык вы используете, но для этих тестовых примеров, использующих PHP / PCRE, похоже, подходит следующее:

(\d+)[+-]([+-]?\d+)

Чтобы разбить его:

  • (\d+) соответствует хотя бы одному ди git и захватывает его в группе 1
  • [+-] соответствует либо плюсу, либо минусу
  • ([+-]?\d+) соответствует плюсу или минусу или ничего, за которым следует хотя бы один ди git. Захватите все это в группе 2.
...