У меня есть строки, похожие на эти:
TAMPA HQ - 9125 Henderson Rd - Comment Posted on Work Order # 7065
TAMPA HQ - 9125 Henderson Rd - Work Order # 79651 Alert
TAMPA HQ - 9125 Henderson Rd - Work Order # 805923 Request Number Assigned
Есть ли общий способ извлечь WO #? в C#, поэтому вывод будет:
Work Order # 7065
Work Order # 79651
Work Order # 805923
так далее?
Все ли строки будут содержать «Номер наряда на работу»?
Нет, я не разбираюсь в Regex, поэтому, если вы хотите предложить что-то, что мне очень поможет. Примечание. Фактический номер WO может состоять из любого числа цифр.
Да, Радж, у всех строк есть "Номер наряда на работу" плюс фактическое число после





Это регулярное выражение будет работать: Work Order # \d+.
Regex r = new Regex("Work Order # \d+");
Match match = r.Match("TAMPA HQ - 9125 Henderson Rd - Work Order # 79651 Alert");
Так как я плохо разбираюсь в регулярных выражениях, может быть, вы поможете мне получить значение "WO-134261" из строки "Запрос на обслуживание объекта Comcast Center № WO-134261"?
это будет делать? Request # WO-\d+
Используйте такое регулярное выражение:
"^Work Order #.\d+"
^ приведет к тому, что он не будет соответствовать приведенным примерам (первые 3)
Вот алгоритм:
LengthOfString = StrLength (IncomingString)
WorkOrderNumberPosition = FindInString (IncomingString, "Work Order # ")
LeftSideRemovedString = SubString (IncomingString, WorkOrderNumberPosition, LengthOfString - WorkOrderNumberPosition)
WorkOrderRemoved = Replace (LeftSideRemovedString, "Work Order #", "")
Теперь выполните цикл и найдите последний последовательный символ, который является числом, и используйте это число для создания подстроки.
//to simulate an input lines
var input = new StringBuilder();
input.AppendLine("TAMPA HQ -9125 Henderson Rd -Comment Posted on Work Order # 7065");
input.AppendLine("TAMPA HQ -9125 Henderson Rd -Work Order # 79651 Alert");
input.AppendLine("TAMPA HQ - 9125 Henderson Rd -Work Order # 805923 Request Number Assigned");
Regex regex = new Regex(@"(?<Identifier>Work Order # \d+)");
var results = regex.Matches(input.ToString());
foreach (Match match in results)
{
Console.WriteLine(match.Groups["Identifier"].Value);
}
протестировано здесь: http://rextester.com/CAR42027
Вы пробовали Regex?