Вопрос по regex, .net, string, c# – C # Обратное все числа в строке?

4

У меня есть строка:

& Quot;Hello 7866592 this is my 12432 string and 823 i need to flip all 123& Quot;

И я хочу быть

& Quot;Hello 2956687 this is my 23421 string and 328 i need to flip all 321& Quot;

Я использую это регулярное выражение, чтобы получить все числа:

Regex nums = new Regex("\d+");
Надо смотреть вString.Split а такжеreversing strings David B
Нет обычных элементов языка регулярных выражений, которые бы сделали это за вас. Вы не говорите, нужно ли, чтобы решение было регулярным выражением (и это было бы очень длинным и сложным регулярным выражением, если бы вы даже могли это сделать). Это означает, что вы, похоже, ищете нормальное решение для программирования основной проблемы. Я не думаю, что это подходит для stackoverflow. Alan McBee - MSFT
Походит на домашнюю работу. Использование регулярных выражений было бы хорошо для извлечения чисел, но я считаю, что было бы лучше просто увеличить строку через массив символов, записать индексную точку, где начинается набор цифр, а затем увеличивать до тех пор, пока вы не достигнете цифра, затем посмотрите на обратное изменение цифр между индексными точкамиa а такжеb-1. Adrian Thompson Phillips

Ваш Ответ

2   ответа
17
var replacedString = 
    Regex.Replace(//finds all matches and replaces them
    myString, //string we're working with
    @"\d+", //the regular expression to match to do a replace
    m => new string(m.Value.Reverse().ToArray())); //a Lambda expression which
        //is cast to the MatchEvaluator delegate, so once the match is found, it  
        //is replaced with the output of this method.
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededRegex.ReplaceError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Danpe
Error: User Rate Limit Exceeded Danpe
Error: User Rate Limit ExceededRegex.ReplaceError: User Rate Limit ExceededMatchEvaluatorError: User Rate Limit Exceeded
1

Разбейте строку на пробелы. Затем возьмите строки в новом массиве строк, которые являются цифрами, и запустите на них эту функцию:

public static string Reverse( string s )
{
   char[] charArray = s.ToCharArray();
   Array.Reverse( charArray );
   return new string( charArray );
}

Затем рекомбинируйте ваш массив в одну строку.

Error: User Rate Limit Exceeded

Похожие вопросы