Member 14484176 Ответов: 2

Код C# для того, чтобы разделить слова с запятыми, слова также содержат запятые


например:
Эти слова таковы
Кевин &амп; Кендра Ирвин-младший,Клинт [удалено] ко, Инк.,МНГ [УДАЛЕНО], ООО
В приведенных выше словах мне нужно разделить запятыми(Примечание:разделить запятыми после слова)
Демонстрационный результат таков
Кевин и Кендра Ирвин - младшие.
Clint [удалено] Co, Inc.
SRG [УДАЛЕНО], LLC

заранее спасибо.

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

разделять запятыми после слова мне трудно.

Richard MacCutchan

Вы не можете этого сделать, так как разделитель не может определить, какие запятые являются фактическими разделителями наборов. Вам нужно будет написать свой собственный парсер и каким-то образом выяснить, где находятся границы.

OriginalGriff

Пожалуйста, обратите внимание: я отредактировал ваш вопрос, чтобы удалить фактические адреса - если они выглядят "слишком реальными", то ваш пост выглядит как спам вместо "реального вопроса", и это, скорее всего, приведет к тому, что вы будете выброшены с сайта.

2 Ответов

Рейтинг:
1

OriginalGriff

Вы не можете, не автоматически - или, по крайней мере, это было бы чрезвычайно трудно и подвержено ошибкам.
Вам нужно будет создать список компонентов "они разрешены как часть слова": "Jr", "Inc", "LLC" и любые другие, которые могут возникнуть. Затем используйте строку.Разделите, чтобы разбить его на все запятые, затем обрежьте каждую часть, чтобы удалить начальные и конечные пробелы, прежде чем сканировать каждую часть, чтобы увидеть, есть ли она в списке "ОК". Если это так, добавьте его к предыдущей строке с новой запятой и удалите его из своей коллекции.

Это сработало бы - сегодня, - но вы бы вечно находили случаи, которые вы пропустили, или исключения, где "запятая и суффикс" не должны были применяться.

Гораздо, гораздо лучшим решением является либо получить данные, введенные в отдельные поля вместо одного поля, либо заключенные в двойные кавычки при создании данных CSV:

"Kevin & Kendra Irwin, Jr.","Clint [DELETED] Co, Inc.","SRG [DELETED], LLC"
Большинство CSV-процессоров принимают / создают такие поля с разделителями, и это устраняет любую путаницу, которую вы вводите, пытаясь использовать один и тот же символ для двух целей.


Рейтинг:
1

Patrice T

Цитата:
Код C# для того, чтобы разделить слова с запятыми, слова также содержат запятые

Автоматизировать эту задачу невозможно, потому что запятая неоднозначна.
Как сказано в S1, вам нужно использовать разделители, чтобы сделать ваш файл не неоднозначным.
Если у вас есть только 1 поле, вы можете использовать 1 строку на имя, чтобы избежать двусмысленных запятых.
Лично я использую табуляции в качестве разделителя между полями, у меня никогда не было проблем с этим способом.
Значения, разделенные запятыми - Википедия[^]