Нахождение первого числа в строке с помощью.NET 3.5

Я думаю, что это зависит от среды, в которой Вы находите себя. Если Вы *, отклоняют человека, то знание awk является Хорошей Вещью. Единственная другая среда сценариев, которая может быть найдена на фактически каждом *, отклоняет, sh. Таким образом, в то время как grep, sed, и т.д. может, конечно, заменить awk на современной господствующей тенденции linux дистрибутив, когда Вы перемещаетесь в более экзотические системы, знание немного awk будет Реальным Удобный.

awk может также использоваться для больше, чем просто обработки текста. Например, один из моих супервизоров пишет код астрономии в awk - именно так крайне старая школа и , потрясающая , он. Назад в его дни, это был лучший инструмент для задания... и теперь даже при том, что его студенты как я используют Python и что не, он придерживается того, что он знает и работает хорошо.

В закрытии, существует много старого кода, ударяющего во всем мире, знание немного awk не собирается причинять боль. Это также сделает Вас лучше *, отклоняют человека:-)

5
задан nailitdown 10 December 2009 в 08:48
поделиться

3 ответа

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

int ix = myString.IndexOfAny('1', '2', '3', '4', '5', '6', '7', '8', '9', '0');
13
ответ дан 18 December 2019 в 07:54
поделиться

Попробуйте что-нибудь вроде этого

string s = "XX0234X";
Regex rg = new Regex("\\d+");
Match m = rg.Match(s);
5
ответ дан 18 December 2019 в 07:54
поделиться

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

using System;
using System.Text.RegularExpressions;

class Program {
    static void Main(string[] args) {

        string[] strings = new string[] {
            "XXXX001&042",
            "XXXXXXX004-010XXX",
            "XX0234X"
        };

        Regex regex = new Regex(@"(?<first>\d+)((?<separator>[-&])(?<second>\d+))?");
        foreach (string s in strings){
            Match match = regex.Match(s);
            Console.WriteLine("First value: {0}",match.Groups["first"].Value);
            if (match.Groups["separator"].Success) {
                Console.WriteLine("Separator: {0}", match.Groups["separator"].Value);
                Console.WriteLine("Second value: {0}", match.Groups["second"].Value);
            }
        }

    }
}
2
ответ дан 18 December 2019 в 07:54
поделиться
Другие вопросы по тегам:

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