как исключить запятую в моем регулярном выражении - PullRequest
0 голосов
/ 10 июля 2020

мой набор символов

-68,-79,-72,-70,-71,-71,-71,-71,-72,-73,R2,0000feaa-0000-1000-8000-00805f9b34fb

Я хочу, например,

-68-79-73

и мое регулярное выражение

[-][0-9]{2}[^0-9]

и результат вроде

-68, -79, 

Я хочу исключить запятую из своего набора символов

как мне решить мою проблему

Спасибо за вашу помощь

Ответы [ 3 ]

0 голосов
/ 10 июля 2020

Уже сказал об этом в комментариях, но опубликую ответ только для завершения.

Решение этого не совсем регулярное выражение. Это функция replace любого инструмента, который вы используете. Все, что вам нужно сделать, это заменить , на (пробел).

Например, в python .replace(',', ' ') достаточно

0 голосов
/ 10 июля 2020

какой язык вы используете?

Например:

sed

echo "-34,-35,-34" | sed 's/,/ /g'

awk

echo "-34,-35,-34" | awk '{gsub(/,/, " ", $0); print $0}'
0 голосов
/ 10 июля 2020

Основываясь на вашем регулярном выражении и ваших результатах, я предполагаю, что вы находите несколько совпадений, а затем помещаете пробелы между ними. Позвольте мне разобрать, что делает ваше регулярное выражение:

  1. [-] соответствует отрицательному знаку
  2. [0-9]{2} соответствует двум цифрам
  3. [^0-9] соответствует любому не -di git символ, включая запятую. Таким образом, запятые являются частью вашего совпадения

Если вы хотите исключить запятые из своего совпадения, но при этом утверждать, что они есть, вам нужно использовать положительный просмотр вперед. Делается это так:

[-][0-9]{2}(?=[^0-9])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...