Как заменить «-» на «-» только тогда, когда ему не предшествует «е»? - PullRequest
1 голос
/ 18 марта 2012

Я полагаю, что мне следует использовать Regex для этого, но я все еще много ломаю голову над этим (и единственный подобный вопрос, который я нашел, был не совсем мой случай), поэтому я решил обратиться за помощью.Это входной и ожидаемый выходные данные:

Input:  "c-0.68219,-0.0478 -1.01455-0.0441 0.9e-4,0.43212"
Output: "c -0.68219,-0.0478 -1.01455 -0.0441 0.9e-4,0.43212"

В основном мне нужны запятые или пробелы в качестве разделителей значений, но я не могу разбить экспоненциальный индекс (e‑4).Может быть, сделать две последовательные замены?

Ответы [ 2 ]

2 голосов
/ 18 марта 2012

У меня есть время, но вы должны использовать что-то вроде этого:

Regex rx = new Regex(@"([^e\s])-(\d)");
rx.Replace(input, "$1 -$2");

Редактировать: Это добавит пробел впереди, даже если есть запятая.Любая причина не делать этого?

0 голосов
/ 18 марта 2012

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

ResultString = Regex.Replace(MyString, "([^0-9,e,., ,e-])", "$1 ",
        RegexOptions.IgnoreCase);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...