Извлеките заказ на покупку # из строки в C # и поместите его в другую строку - PullRequest
0 голосов
/ 20 января 2011

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

Виджет ПО НЕТ. 1234
Тело ПО НЕТ. 123456
Крыло ПО НЕТ. 12345-2
Гайка ПО №. 1-234-56-7

"PO NO." всегда будет одинаковым, поэтому я просто хочу извлечь данные после завершающего пробела в «НЕТ» и превратить их в другую строку, чтобы иметь числовые данные (т. е. номер заказа на покупку).

Спасибо.

Ответы [ 6 ]

2 голосов
/ 20 января 2011

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

String rawPO = "Body PO NO. 123456";
String trimmedPO = rawPO.Remove(0, rawPO.LastIndexOf(" ")).Trim();
1 голос
/ 20 января 2011

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

[.\W]*PO NO\.\W*([\d-]*)

Вот некоторый демонстрационный код (C #):

string[] strings = new string[] {"Widget PO NO. 1234",
                            "Body PO NO. 123456",
                            "Wing PO NO. 12345-2",
                            "Nut PO NO. 1-234-56-7"};
Regex regex = new Regex(@"[.\W]*PO NO\.\W*([\d-]*)");
Match match;

foreach (string s in strings)
{
    match = regex.Match(s);
    Console.WriteLine(match.Groups[1].Value);
}
1 голос
/ 20 января 2011

Попробуйте String.Split :

strOrder = "Widget PO NO. 1234";
arSplit = strOrder.Split(" PO NO. ");

Это создает массив arsplit[] со всем до PO NO.в arSplit[0] и все после в arsplit[1].

1 голос
/ 20 января 2011

Вы можете использовать регулярные выражения:

       Match m = Regex.Match(str, @"PO NO\. (?<PO>\d+)$");
       string poNumber = m.Groups["PO"].Value;
1 голос
/ 20 января 2011
        const string refString = "PO NO.";
        string aLine = "Widget PO NO. 1234";

        string orderNumb = aLine.Substring(aLine.LastIndexOf(refString) + refString.Length).Trim();
0 голосов
/ 20 января 2011
string order = orders.Split(" ")[3];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...