Moumni Mohamed Ответов: 2

Как сравнить две строки с числовой частью этой строки C# ?


У меня есть список строк, содержащих имена счетов-фактур,

FACTURE 147-2016 OCP КАМЕРЫ
СЧЕТ-ФАКТУРА 148-2016 ОВП 20 DETECTEURS
СЧЕТ-ФАКТУРА 150-2016 VIVOENERGY АЛЬТАИР 5Х
СЧЕТ-ФАКТУРА 158-2017 ЭНЕРГИИ ВИВО МОХАММЕДИЯ

Я хочу сравнить имена в списке и имена в файле Excel.

файл excel просто содержит форму

Счет-фактура 147-2016 или FACTURE150-2016



как я не могу сравнить только с кодом и фактурой года 147-2016

Что я уже пробовал:

я стараюсь использовать (string.Split, string. contains), но иногда между счетом и кодом есть пробел, а иногда нет.

FACTURE147-2016
Счет-фактура 147-2016

2 Ответов

Рейтинг:
2

Ralf Meier

Если ваша строка может быть "FACTURE147-2016", а также "FACTURE 147-2016" (с пробелом в ней) Я бы использовал строку.Содержит в 2 этапа :
1-й : сравните, если строка содержит "фактуру"
2-й : если да, то сравните, если он также содержит "147-2016"...


Рейтинг:
2

OriginalGriff

Попробуйте регулярное выражение:

(?<=FACTURE\s*\d{3}\-\d{4}).*
Это должно захватить только текстовую часть после кода счета-фактуры.

Или, если вы хотите, чтобы код счета-фактуры / год вещи отдельно
(?<=FACTURE\s*)(?<prefix>\d{3})\-(?<year>\d{4})(?<FreeText>.*)$
Разделим его на группы.